Apparatus, a method and a computer program for video coding and decoding

ABSTRACT

There is disclosed a method, an apparatus and a computer program product for video encoding and decoding. In accordance with an embodiment the method comprises obtaining coded data of a sub-picture, the sub-picture belonging to a picture, and the sub-picture belonging to a sub-picture sequence and determining whether to use the sub-picture as a source for a manipulated reference sub-picture. If the determining reveals that the sub-picture is to be used as the source for the manipulated reference sub-picture, the manipulated reference sub-picture is generated from the sub-picture to be used as a reference for a subsequent sub-picture of the sub-picture sequence.

TECHNICAL FIELD

The present invention relates to an apparatus, a method and a computerprogram for video coding and decoding.

BACKGROUND

This section is intended to provide a background or context to theinvention that is recited in the claims. The description herein mayinclude concepts that could be pursued, but are not necessarily onesthat have been previously conceived or pursued. Therefore, unlessotherwise indicated herein, what is described in this section is notprior art to the description and claims in this application and is notadmitted to be prior art by inclusion in this section.

A video coding system may comprise an encoder that transforms an inputvideo into a compressed representation suited for storage/transmissionand a decoder that can uncompress the compressed video representationback into a viewable form. The encoder may discard some information inthe original video sequence in order to represent the video in a morecompact form, for example, to enable the storage/transmission of thevideo information at a lower bitrate than otherwise might be needed.

Various technologies for providing three-dimensional (3D) video contentare currently investigated and developed. Especially, intense studieshave been focused on various multiview applications wherein a viewer isable to see only one pair of stereo video from a specific viewpoint andanother pair of stereo video from a different viewpoint. One of the mostfeasible approaches for such multiview applications has turned out to besuch wherein only a limited number of input views, e.g. a mono or astereo video plus some supplementary data, is provided to a decoder sideand all required views are then rendered (i.e. synthesized) locally bythe decoder to be displayed on a display.

In the encoding of 3D video content, video compression systems, such asAdvanced Video Coding standard (H.264/AVC), the Multiview Video Coding(MVC) extension of H.264/AVC or scalable extensions of HEVC (HighEfficiency Video Coding) can be used.

Two-dimensional (2D) video codecs can be used as basis for novel usagescenarios, such as point cloud coding and 360-degree video. Thefollowing challenges have been faced. It may be needed to make atrade-off between selecting projection surfaces optimally for a singletime instance vs. keeping projection surfaces constant for a time periodin order to facilitate inter prediction. Also motion over projectionsurface boundary might not be handled optimally. When projectionsurfaces are packed onto a 2D picture, techniques likemotion-constrained tile sets have to be used to avoid unintentionalprediction leaks from one surface to another. In 360-degree videocoding, geometry padding have been shown to improve compression butwould require changes in the core (de)coding process.

SUMMARY

Now in order to at least alleviate the above problems, an enhancedencoding and decoding method is introduced herein.

A method according to a first aspect comprises:

-   -   obtaining coded data of a sub-picture, the sub-picture belonging        to a picture, and the sub-picture belonging to a sub-picture        sequence;    -   determining whether to use the sub-picture as a source for a        manipulated reference sub-picture;    -   if the determining reveals that the sub-picture is to be used as        the source for the manipulated reference sub-picture; the method        further comprises    -   generating the manipulated reference sub-picture from the        sub-picture to be used as a reference for a subsequent        sub-picture of the sub-picture sequence.

An apparatus according to a second aspect comprises at least oneprocessor and at least one memory including computer program code, thememory and the computer program code configured to, with the at leastone processor, cause the apparatus to perform at least the following:

-   -   obtain coded data of a sub-picture, the sub-picture belonging to        a picture, and the sub-picture belonging to a sub-picture        sequence;    -   determine whether to use the sub-picture as a source for a        manipulated reference sub-picture;    -   generate the manipulated reference sub-picture from the        sub-picture to be used as a reference for a subsequent        sub-picture of the sub-picture sequence, if the determining        reveals that the sub-picture is to be used as the source for the        manipulated reference sub-picture.

A computer program product according to a third aspect comprisescomputer program code configured to, when executed on at least oneprocessor, cause an apparatus or a system to:

-   -   obtain coded data of a sub-picture, the sub-picture belonging to        a picture, and the sub-picture belonging to a sub-picture        sequence;    -   determine whether to use the sub-picture as a source for a        manipulated reference sub-picture;    -   generate the manipulated reference sub-picture from the        sub-picture to be used as a reference for a subsequent        sub-picture of the sub-picture sequence, if the determining        reveals that the sub-picture is to be used as the source for the        manipulated reference sub-picture.

An encoder according to a fourth aspect comprises:

-   -   an input for obtaining coded data of a sub-picture, the        sub-picture belonging to a picture, and the sub-picture        belonging to a sub-picture sequence;    -   a determinator configured to determine whether to use the        sub-picture as a source for a manipulated reference sub-picture;    -   a manipulator configured to generate the manipulated reference        sub-picture from the sub-picture to be used as a reference for a        subsequent sub-picture of the sub-picture sequence, if the        determining reveals that the sub-picture is to be used as the        source for the manipulated reference sub-picture.

A decoder according to a fifth aspect comprises:

-   -   an input for receiving coded data of a sub-picture, the        sub-picture belonging to a picture, and the sub-picture        belonging to a sub-picture sequence;    -   a determinator configured to determine whether to use the        sub-picture as a source for a manipulated reference sub-picture;    -   a manipulator configured to generate the manipulated reference        sub-picture from the sub-picture to be used as a reference for a        subsequent sub-picture of the sub-picture sequence, if the        determining reveals that the sub-picture is to be used as the        source for the manipulated reference sub-picture.

A method according to a sixth aspect comprises:

-   -   decoding coded data of a first sub-picture, the first        sub-picture belonging to a first picture, and the first        sub-picture belonging to a first sub-picture sequence;    -   decoding coded data of a second sub-picture, the second        sub-picture belonging to a first picture, and the second        sub-picture belonging to a second sub-picture sequence, the        decoding being independent of the decoding of the coded data of        the first sub-picture; and    -   decoding coded data of a third sub-picture, the third        sub-picture belonging to a second picture, the third sub-picture        belonging to the first sub-picture sequence, the decoding using        the first sub-picture as a reference for prediction.

A method for encoding a video sequence according to a seventh aspectcomprises:

-   -   encoding data of a first sub-picture, the first sub-picture        belonging to a first picture, and the first sub-picture        belonging to a first sub-picture sequence;    -   encoding data of a second sub-picture, the second sub-picture        belonging to a first picture, and the second sub-picture        belonging to a second sub-picture sequence, the encoding being        independent of the encoding of the coded data of the first        sub-picture; and    -   encoding data of a third sub-picture, the third sub-picture        belonging to a second picture, the third sub-picture belonging        to the first sub-picture sequence, the encoding using the first        sub-picture as a reference for prediction.

An apparatus according to an eighth aspect comprises at least oneprocessor and at least one memory including computer program code, thememory and the computer program code configured to, with the at leastone processor, cause the apparatus to perform at least the following:

-   -   to decode coded data of a first sub-picture, the first        sub-picture belonging to a first picture, and the first        sub-picture belonging to a first sub-picture sequence;    -   to decode coded data of a second sub-picture, the second        sub-picture belonging to a first picture, and the second        sub-picture belonging to a second sub-picture sequence, the        decoding being independent of the decoding of the coded data of        the first sub-picture; and    -   to decode coded data of a third sub-picture, the third        sub-picture belonging to a second picture, the third sub-picture        belonging to the first sub-picture sequence, the decoding using        the first sub-picture as a reference for prediction.

An apparatus according to a ninth aspect comprises at least oneprocessor, memory including computer program code, the memory and thecomputer program code configured to, with the at least one processor,cause the apparatus to perform at least the following:

-   -   encode data of a first sub-picture, the first sub-picture        belonging to a first picture, and the first sub-picture        belonging to a first sub-picture sequence;    -   encode data of a second sub-picture, the second sub-picture        belonging to a first picture, and the second sub-picture        belonging to a second sub-picture sequence, the encoding being        independent of the encoding of the coded data of the first        sub-picture; and    -   encode data of a third sub-picture, the third sub-picture        belonging to a second picture, the third sub-picture belonging        to the first sub-picture sequence, the encoding using the first        sub-picture as a reference for prediction.

The further aspects relate to apparatuses and computer readable storagemedia stored with code thereon, which are arranged to carry out theabove methods and one or more of the embodiments related thereto.

BRIEF DESCRIPTION OF THE DRAWINGS

For better understanding of the present invention, reference will now bemade by way of example to the accompanying drawings in which:

FIG. 1 shows an example of MPEG Omnidirectional Media Format (OMAF);

FIG. 2 shows an example of image stitching, projection and region-wisepacking;

FIG. 3 shows another example of image stitching, projection andregion-wise packing;

FIG. 4 shows an example of a process of forming a monoscopicequirectangular panorama picture;

FIG. 5 shows an example of tile-based omnidirectional video streaming;

FIG. 6 shows an example of a decoding process;

FIG. 7 shows a sub-picture-sequence-wise buffering according to anembodiment;

FIG. 8 shows a decoding process in accordance with an embodiment;

FIG. 9 illustrates a decoding process according to another embodiment;

FIG. 10 shows an example of a picture that has been divided into foursub-pictures;

FIG. 11 shows predictions applicable in an encoding process and/or in adecoding process according to an embodiment;

FIG. 12 shows an example of using a shared coded sub-picture formulti-resolution viewport independent 360-degree video streaming;

FIG. 13 shows an example of a sub-picture using a part of anothersub-picture as a reference frame;

FIG. 14 shows another example of a sub-picture using a part of anothersub-picture as a reference frame;

FIG. 15 shows an example of a patch generation according to anembodiment;

FIG. 16 is a flowchart illustrating a method according to an embodiment;

FIG. 17 is a flowchart illustrating a method according to anotherembodiment;

FIG. 18 shows an apparatus according to an embodiment;

DETAILED DESCRIPTION OF SOME EXAMPLE EMBODIMENTS

In the following, several embodiments will be described in the contextof one video coding arrangement. It is to be noted, however, that theinvention is not limited to this particular arrangement. For example,the invention may be applicable to video coding systems like streamingsystem, DVD (Digital Versatile Disc) players, digital televisionreceivers, personal video recorders, systems and computer programs onpersonal computers, handheld computers and communication devices, aswell as network elements such as transcoders and cloud computingarrangements where video data is handled.

In the following, several embodiments are described using the conventionof referring to (de)coding, which indicates that the embodiments mayapply to decoding and/or encoding.

The Advanced Video Coding standard (which may be abbreviated AVC orH.264/AVC) was developed by the Joint Video Team (JVT) of the VideoCoding Experts Group (VCEG) of the Telecommunications StandardizationSector of International Telecommunication Union (ITU-T) and the MovingPicture Experts Group (MPEG) of International Organization forStandardization (ISO)/International Electrotechnical Commission (IEC).The H.264/AVC standard is published by both parent standardizationorganizations, and it is referred to as ITU-T Recommendation H.264 andISO/IEC International Standard 14496-10, also known as MPEG-4 Part 10Advanced Video Coding (AVC). There have been multiple versions of theH.264/AVC standard, each integrating new extensions or features to thespecification. These extensions include Scalable Video Coding (SVC) andMultiview Video Coding (MVC).

The High Efficiency Video Coding standard (which may be abbreviated HEVCor H.265/HEVC) was developed by the Joint Collaborative Team-VideoCoding (JCT-VC) of VCEG and MPEG. The standard is published by bothparent standardization organizations, and it is referred to as ITU-TRecommendation H.265 and ISO/IEC International Standard 23008-2, alsoknown as MPEG-H Part 2 High Efficiency Video Coding (HEVC). Extensionsto H.265/HEVC include scalable, multiview, three-dimensional, andfidelity range extensions, which may be referred to as SHVC, MV-HEVC,3D-HEVC, and REXT, respectively. The references in this description toH.265/HEVC, SHVC, MV-HEVC, 3D-HEVC and REXT that have been made for thepurpose of understanding definitions, structures or concepts of thesestandard specifications are to be understood to be references to thelatest versions of these standards that were available before the dateof this application, unless otherwise indicated.

The Versatile Video Coding standard (VVC, H.266, or H.266/VVC) ispresently under development by the Joint Video Experts Team (JVET),which is a collaboration between the ISO/IEC MPEG and ITU-T VCEG.

Some key definitions, bitstream and coding structures, and concepts ofH.264/AVC and HEVC and some of their extensions are described in thissection as an example of a video encoder, decoder, encoding method,decoding method, and a bitstream structure, wherein the embodiments maybe implemented. Some of the key definitions, bitstream and codingstructures, and concepts of H.264/AVC are the same as in HEVCstandard—hence, they are described below jointly. The aspects of variousembodiments are not limited to H.264/AVC or HEVC or their extensions,but rather the description is given for one possible basis on top ofwhich the present embodiments may be partly or fully realized.

Video codec may comprise an encoder that transforms the input video intoa compressed representation suited for storage/transmission and adecoder that can uncompress the compressed video representation backinto a viewable form. The compressed representation may be referred toas a bitstream or a video bitstream. A video encoder and/or a videodecoder may also be separate from each other, i.e. need not form acodec. The encoder may discard some information in the original videosequence in order to represent the video in a more compact form (thatis, at lower bitrate).

Hybrid video codecs, for example ITU-T H.264, may encode the videoinformation in two phases. At first, pixel values in a certain picturearea (or “block”) are predicted for example by motion compensation means(finding and indicating an area in one of the previously coded videoframes that corresponds closely to the block being coded) or by spatialmeans (using the pixel values around the block to be coded in aspecified manner). Then, the prediction error, i.e. the differencebetween the predicted block of pixels and the original block of pixels,is coded. This may be done by transforming the difference in pixelvalues using a specified transform (e.g. Discreet Cosine Transform (DCT)or a variant of it), quantizing the coefficients and entropy coding thequantized coefficients. By varying the fidelity of the quantizationprocess, encoder can control the balance between the accuracy of thepixel representation (picture quality) and size of the resulting codedvideo representation (file size or transmission bitrate).

In temporal prediction, the sources of prediction are previously decodedpictures (a.k.a. reference pictures). In intra block copy (IBC; a.k.a.intra-block-copy prediction or current picture referencing), predictionis applied similarly to temporal prediction, but the reference pictureis the current picture and only previously decoded samples can bereferred in the prediction process. Inter-layer or inter-view predictionmay be applied similarly to temporal prediction, but the referencepicture is a decoded picture from another scalable layer or from anotherview, respectively. In some cases, inter prediction may refer totemporal prediction only, while in other cases inter prediction mayrefer collectively to temporal prediction and any of intra block copy,inter-layer prediction, and inter-view prediction provided that they areperformed with the same or similar process than temporal prediction.Inter prediction or temporal prediction may sometimes be referred to asmotion compensation or motion-compensated prediction.

Intra prediction utilizes the fact that adjacent pixels within the samepicture are likely to be correlated. Intra prediction can be performedin spatial or transform domain, i.e., either sample values or transformcoefficients can be predicted. Intra prediction is typically exploitedin intra coding, where no inter prediction is applied.

One outcome of the coding procedure is a set of coding parameters, suchas motion vectors and quantized transform coefficients. Many parameterscan be entropy-coded more efficiently if they are predicted first fromspatially or temporally neighboring parameters. For example, a motionvector may be predicted from spatially adjacent motion vectors and onlythe difference relative to the motion vector predictor may be coded.Prediction of coding parameters and intra prediction may be collectivelyreferred to as in-picture prediction.

Entropy coding/decoding may be performed in many ways. For example,context-based coding/decoding may be applied, where in both the encoderand the decoder modify the context state of a coding parameter based onpreviously coded/decoded coding parameters. Context-based coding may forexample be context adaptive binary arithmetic coding (CABAC) orcontext-based variable length coding (CAVLC) or any similar entropycoding. Entropy coding/decoding may alternatively or additionally beperformed using a variable length coding scheme, such as Huffmancoding/decoding or Exp-Golomb coding/decoding. Decoding of codingparameters from an entropy-coded bitstream or codewords may be referredto as parsing.

Video coding standards may specify the bitstream syntax and semantics aswell as the decoding process for error-free bitstreams, whereas theencoding process might not be specified, but encoders may just berequired to generate conforming bitstreams. Bitstream and decoderconformance can be verified with the Hypothetical Reference Decoder(HRD). The standards may contain coding tools that help in coping withtransmission errors and losses, but the use of the tools in encoding maybe optional and decoding process for erroneous bitstreams might not havebeen specified.

A syntax element may be defined as an element of data represented in thebitstream. A syntax structure may be defined as zero or more syntaxelements present together in the bitstream in a specified order.

An elementary unit for the input to an encoder and the output of adecoder, respectively, is typically a picture. A picture given as aninput to an encoder may also be referred to as a source picture, and apicture decoded by a decoded may be referred to as a decoded picture ora reconstructed picture.

The source and decoded pictures are each comprised of one or more samplearrays, such as one of the following sets of sample arrays:

-   -   Luma (Y) only (monochrome).    -   Luma and two chroma (YCbCr or YCgCo).    -   Green, Blue and Red (GBR, also known as RGB).    -   Arrays representing other unspecified monochrome or tri-stimulus        color samplings (for example, YZX, also known as XYZ).

In the following, these arrays may be referred to as luma (or L or Y)and chroma, where the two chroma arrays may be referred to as Cb and Cr;regardless of the actual color representation method in use. The actualcolor representation method in use can be indicated e.g. in a codedbitstream e.g. using the Video Usability Information (VUI) syntax ofHEVC or alike. A component may be defined as an array or single samplefrom one of the three sample arrays (luma and two chroma) or the arrayor a single sample of the array that compose a picture in monochromeformat.

A picture may be defined to be either a frame or a field. A framecomprises a matrix of luma samples and possibly the corresponding chromasamples. A field is a set of alternate sample rows of a frame and may beused as encoder input, when the source signal is interlaced. Chromasample arrays may be absent (and hence monochrome sampling may be inuse) or chroma sample arrays may be subsampled when compared to lumasample arrays.

Some chroma formats may be summarized as follows:

-   -   In monochrome sampling there is only one sample array, which may        be nominally considered the luma array.    -   In 4:2:0 sampling, each of the two chroma arrays has half the        height and half the width of the luma array.    -   In 4:2:2 sampling, each of the two chroma arrays has the same        height and half the width of the luma array.    -   In 4:4:4 sampling when no separate color planes are in use, each        of the two chroma arrays has the same height and width as the        luma array.

Coding formats or standards may allow to code sample arrays as separatecolor planes into the bitstream and respectively decode separately codedcolor planes from the bitstream. When separate color planes are in use,each one of them is separately processed (by the encoder and/or thedecoder) as a picture with monochrome sampling.

When chroma subsampling is in use (e.g. 4:2:0 or 4:2:2 chroma sampling),the location of chroma samples with respect to luma samples may bedetermined in the encoder side (e.g. as pre-processing step or as partof encoding). The chroma sample positions with respect to luma samplepositions may be pre-defined for example in a coding standard, such asH.264/AVC or HEVC, or may be indicated in the bitstream for example aspart of VUI of H.264/AVC or HEVC.

Generally, the source video sequence(s) provided as input for encodingmay either represent interlaced source content or progressive sourcecontent. Fields of opposite parity have been captured at different timesfor interlaced source content. Progressive source content containscaptured frames. An encoder may encode fields of interlaced sourcecontent in two ways: a pair of interlaced fields may be coded into acoded frame or a field may be coded as a coded field. Likewise, anencoder may encode frames of progressive source content in two ways: aframe of progressive source content may be coded into a coded frame or apair of coded fields. A field pair or a complementary field pair may bedefined as two fields next to each other in decoding and/or outputorder, having opposite parity (i.e. one being a top field and anotherbeing a bottom field) and neither belonging to any other complementaryfield pair. Some video coding standards or schemes allow mixing of codedframes and coded fields in the same coded video sequence.

Moreover, predicting a coded field from a field in a coded frame and/orpredicting a coded frame for a complementary field pair (coded asfields) may be enabled in encoding and/or decoding.

Partitioning may be defined as a division of a set into subsets suchthat each element of the set is in exactly one of the subsets.

In H.264/AVC, a macroblock is a 16×16 block of luma samples and thecorresponding blocks of chroma samples. For example, in the 4:2:0sampling pattern, a macroblock contains one 8×8 block of chroma samplesper each chroma component. In H.264/AVC, a picture is partitioned to oneor more slice groups, and a slice group contains one or more slices. InH.264/AVC, a slice consists of an integer number of macroblocks orderedconsecutively in the raster scan within a particular slice group.

When describing the operation of HEVC encoding and/or decoding, thefollowing terms may be used. A coding block may be defined as an N×Nblock of samples for some value of N such that the division of a codingtree block into coding blocks is a partitioning. A coding tree block(CTB) may be defined as an N×N block of samples for some value of N suchthat the division of a component into coding tree blocks is apartitioning. A coding tree unit (CTU) may be defined as a coding treeblock of luma samples, two corresponding coding tree blocks of chromasamples of a picture that has three sample arrays, or a coding treeblock of samples of a monochrome picture or a picture that is codedusing three separate color planes and syntax structures used to code thesamples. A coding unit (CU) may be defined as a coding block of lumasamples, two corresponding coding blocks of chroma samples of a picturethat has three sample arrays, or a coding block of samples of amonochrome picture or a picture that is coded using three separate colorplanes and syntax structures used to code the samples.

In some video codecs, such as High Efficiency Video Coding (HEVC) codec,video pictures may be divided into coding units (CU) covering the areaof the picture. A CU consists of one or more prediction units (PU)defining the prediction process for the samples within the CU and one ormore transform units (TU) defining the prediction error coding processfor the samples in the said CU. The CU may consist of a square block ofsamples with a size selectable from a predefined set of possible CUsizes. A CU with the maximum allowed size may be named as LCU (largestcoding unit) or coding tree unit (CTU) and the video picture is dividedinto non-overlapping LCUs. An LCU can be further split into acombination of smaller CUs, e.g. by recursively splitting the LCU andresultant CUs. Each resulting CU may have at least one PU and at leastone TU associated with it. Each PU and TU can be further split intosmaller PUs and TUs in order to increase granularity of the predictionand prediction error coding processes, respectively. Each PU hasprediction information associated with it defining what kind of aprediction is to be applied for the pixels within that PU (e.g. motionvector information for inter predicted PUs and intra predictiondirectionality information for intra predicted PUs).

Each TU can be associated with information describing the predictionerror decoding process for the samples within the said TU (includinge.g. DCT coefficient information). It may be signalled at CU levelwhether prediction error coding is applied or not for each CU. In thecase there is no prediction error residual associated with the CU, itcan be considered there are no TUs for the said CU. The division of theimage into CUs, and division of CUs into PUs and TUs may be signalled inthe bitstream allowing the decoder to reproduce the intended structureof these units.

In a draft version of H.266/VVC, the following partitioning applies. Itis noted that what is described here might still evolve in later draftversions of H.266/VVC until the standard is finalized. Pictures arepartitioned into CTUs similarly to HEVC, although the maximum CTU sizehas been increased to 128×128. A coding tree unit (CTU) is firstpartitioned by a quaternary tree (a.k.a. quadtree) structure. Then thequaternary tree leaf nodes can be further partitioned by a multi-typetree structure. There are four splitting types in multi-type treestructure, vertical binary splitting, horizontal binary splitting,vertical ternary splitting, and horizontal ternary splitting. Themulti-type tree leaf nodes are called coding units (CUs). CU, PU and TUhave the same block size, unless the CU is too large for the maximumtransform length. A segmentation structure for a CTU is a quadtree withnested multi-type tree using binary and ternary splits, i.e. no separateCU, PU and TU concepts are in use except when needed for CUs that have asize too large for the maximum transform length. A CU can have either asquare or rectangular shape.

The decoder reconstructs the output video by applying prediction meanssimilar to the encoder to form a predicted representation of the pixelblocks (using the motion or spatial information created by the encoderand stored in the compressed representation) and prediction errordecoding (inverse operation of the prediction error coding recoveringthe quantized prediction error signal in spatial pixel domain). Afterapplying prediction and prediction error decoding means the decoder sumsup the prediction and prediction error signals (pixel values) to formthe output video frame. The decoder (and encoder) can also applyadditional filtering means to improve the quality of the output videobefore passing it for display and/or storing it as prediction referencefor the forthcoming frames in the video sequence.

The filtering may for example include one more of the following:deblocking, sample adaptive offset (SAO), and/or adaptive loop filtering(ALF).

The deblocking loop filter may include multiple filtering modes orstrengths, which may be adaptively selected based on the features of theblocks adjacent to the boundary, such as the quantization parametervalue, and/or signaling included by the encoder in the bitstream. Forexample, the deblocking loop filter may comprise a normal filtering modeand a strong filtering mode, which may differ in terms of the number offilter taps (i.e. number of samples being filtered on both sides of theboundary) and/or the filter tap values. For example, filtering of twosamples along both sides of the boundary may be performed with a filterhaving the impulse response of (3 7 9 −3)/16, when omitting thepotential impact of a clipping operation.

The motion information may be indicated with motion vectors associatedwith each motion compensated image block in video codecs. Each of thesemotion vectors represents the displacement of the image block in thepicture to be coded (in the encoder side) or decoded (in the decoderside) and the prediction source block in one of the previously coded ordecoded pictures. In order to represent motion vectors efficiently thosemay be coded differentially with respect to block specific predictedmotion vectors. The predicted motion vectors may be created in apredefined way, for example calculating the median of the encoded ordecoded motion vectors of the adjacent blocks. Another way to createmotion vector predictions is to generate a list of candidate predictionsfrom adjacent blocks and/or co-located blocks in temporal referencepictures and signaling the chosen candidate as the motion vectorpredictor. In addition to predicting the motion vector values, thereference index of previously coded/decoded picture can be predicted.The reference index may be predicted from adjacent blocks and/orco-located blocks in temporal reference picture. Moreover, highefficiency video codecs may employ an additional motion informationcoding/decoding mechanism, often called merging/merge mode, where allthe motion field information, which includes motion vector andcorresponding reference picture index for each available referencepicture list, is predicted and used without any modification/correction.Similarly, predicting the motion field information is carried out usingthe motion field information of adjacent blocks and/or co-located blocksin temporal reference pictures and the used motion field information issignaled among a list of motion field candidate list filled with motionfield information of available adjacent/co-located blocks.

Video codecs may support motion compensated prediction from one sourceimage (uni-prediction) and two sources (bi-prediction). In the case ofuni-prediction a single motion vector is applied whereas in the case ofbi-prediction two motion vectors are signaled and the motion compensatedpredictions from two sources are averaged to create the final sampleprediction. In the case of weighted prediction, the relative weights ofthe two predictions can be adjusted, or a signaled offset can be addedto the prediction signal.

In addition to applying motion compensation for inter pictureprediction, similar approach can be applied to intra picture prediction.In this case the displacement vector indicates where from the samepicture a block of samples can be copied to form a prediction of theblock to be coded or decoded. This kind of intra block copying methodscan improve the coding efficiency substantially in presence of repeatingstructures within the frame—such as text or other graphics.

The prediction residual after motion compensation or intra predictionmay be first transformed with a transform kernel (like DCT) and thencoded. The reason for this is that often there still exists somecorrelation among the residual and transform can in many cases helpreduce this correlation and provide more efficient coding.

Video encoders may utilize Lagrangian cost functions to find optimalcoding modes, e.g. the desired Macroblock mode and associated motionvectors. This kind of cost function uses a weighting factor A to tietogether the (exact or estimated) image distortion due to lossy codingmethods and the (exact or estimated) amount of information that isrequired to represent the pixel values in an image area:

C=D+λR  (Eq. 1)

where C is the Lagrangian cost to be minimized, D is the imagedistortion (e.g. Mean Squared Error) with the mode and motion vectorsconsidered, and R the number of bits needed to represent the requireddata to reconstruct the image block in the decoder (including the amountof data to represent the candidate motion vectors).

Some codecs use a concept of picture order count (POC). A value of POCis derived for each picture and is non-decreasing with increasingpicture position in output order. POC therefore indicates the outputorder of pictures. POC may be used in the decoding process for examplefor implicit scaling of motion vectors and for reference picture listinitialization. Furthermore, POC may be used in the verification ofoutput order conformance.

In video coding standards, a compliant bit stream must be able to bedecoded by a hypothetical reference decoder that may be conceptuallyconnected to the output of an encoder and consists of at least apre-decoder buffer, a decoder and an output/display unit. This virtualdecoder may be known as the hypothetical reference decoder (HRD) or thevideo buffering verifier (VBV). A stream is compliant if it can bedecoded by the HRD without buffer overflow or, in some cases, underflow.Buffer overflow happens if more bits are to be placed into the bufferwhen it is full. Buffer underflow happens if some bits are not in thebuffer when said bits are to be fetched from the buffer fordecoding/playback. One of the motivations for the HRD is to avoidso-called evil bitstreams, which would consume such a large quantity ofresources that practical decoder implementations would not be able tohandle.

HRD models typically include instantaneous decoding, while the inputbitrate to the coded picture buffer (CPB) of HRD may be regarded as aconstraint for the encoder and the bitstream on decoding rate of codeddata and a requirement for decoders for the processing rate. An encodermay include a CPB as specified in the HRD for verifying and controllingthat buffering constraints are obeyed in the encoding. A decoderimplementation may also have a CPB that may but does not necessarilyoperate similarly or identically to the CPB specified for HRD.

A Decoded Picture Buffer (DPB) may be used in the encoder and/or in thedecoder. There may be two reasons to buffer decoded pictures, forreferences in inter prediction and for reordering decoded pictures intooutput order. Some coding formats, such as HEVC, provide a great deal offlexibility for both reference picture marking and output reordering,separate buffers for reference picture buffering and output picturebuffering may waste memory resources. Hence, the DPB may include aunified decoded picture buffering process for reference pictures andoutput reordering. A decoded picture may be removed from the DPB when itis no longer used as a reference and is not needed for output. An HRDmay also include a DPB. DPBs of an HRD and a decoder implementation maybut do not need to operate identically.

Output order may be defined as the order in which the decoded picturesare output from the decoded picture buffer (for the decoded picturesthat are to be output from the decoded picture buffer).

A decoder and/or an HRD may comprise a picture output process. Theoutput process may be considered to be a process in which the decoderprovides decoded and cropped pictures as the output of the decodingprocess. The output process is typically a part of video codingstandards, typically as a part of the hypothetical reference decoderspecification. In output cropping, lines and/or columns of samples maybe removed from decoded pictures according to a cropping rectangle toform output pictures. A cropped decoded picture may be defined as theresult of cropping a decoded picture based on the conformance croppingwindow specified e.g. in the sequence parameter set that is referred toby the corresponding coded picture.

One or more syntax structures for (decoded) reference picture markingmay exist in a video coding system. An encoder generates an instance ofa syntax structure e.g. in each coded picture, and a decoder decodes aninstance of the syntax structure e.g. from each coded picture. Forexample, the decoding of the syntax structure may cause pictures to beadaptively marked as “used for reference” or “unused for reference”.

A reference picture set (RPS) syntax structure of HEVC is an example ofa syntax structure for reference picture marking. A reference pictureset valid or active for a picture includes all the reference picturesthat may be used as reference for the picture and all the referencepictures that are kept marked as “used for reference” for any subsequentpictures in decoding order. The reference pictures that are kept markedas “used for reference” for any subsequent pictures in decoding orderbut that are not used as reference picture for the current picture orimage segment may be considered inactive. For example, they might not beincluded in the initial reference picture list(s).

In some coding formats and codecs, a distinction is made betweenso-called short-term and long-term reference pictures. This distinctionmay affect some decoding processes such as motion vector scaling. Syntaxstructure(s) for marking reference pictures may be indicative of markinga picture as “used for long-term reference” or “used for short-termreference”.

In some coding formats, reference picture for inter prediction may beindicated with an index to a reference picture list. In some codecs, tworeference picture lists (reference picture list 0 and reference picturelist 1) are generated for each bi-predictive (B) slice, and onereference picture list (reference picture list 0) is formed for eachinter-coded (P) slice.

A reference picture list, such as the reference picture list 0 and thereference picture list 1, may be constructed in two steps: First, aninitial reference picture list is generated. The initial referencepicture list may be generated using an algorithm pre-defined in astandard. Such an algorithm may use e.g. POC and/or temporal sub-layer,as the basis. The algorithm may process reference pictures withparticular marking(s), such as “used for reference”, and omit otherreference pictures, i.e. avoid inserting other reference pictures intothe initial reference picture list. An example of such other referencepicture is a reference picture marked as “unused for reference” butstill residing in the decoded picture buffer waiting to be output fromthe decoder. Second, the initial reference picture list may be reorderedthrough a specific syntax structure, such as reference picture listreordering (RPLR) commands of H.264/AVC or reference picture listmodification syntax structure of HEVC or anything alike. Furthermore,the number of active reference pictures may be indicated for each list,and the use of the pictures beyond the active ones in the list asreference for inter prediction is disabled. One or both the referencepicture list initialization and reference picture list modification mayprocess only active reference pictures among those reference picturesthat are marked as “used for reference” or alike.

Scalable video coding refers to coding structure where one bitstream cancontain multiple representations of the content at different bitrates,resolutions or frame rates. In these cases, the receiver can extract thedesired representation depending on its characteristics (e.g. resolutionthat matches best the display device). Alternatively, a server or anetwork element can extract the portions of the bitstream to betransmitted to the receiver depending on e.g. the networkcharacteristics or processing capabilities of the receiver. A scalablebitstream may include a “base layer” providing the lowest quality videoavailable and one or more enhancement layers that enhance the videoquality when received and decoded together with the lower layers. Inorder to improve coding efficiency for the enhancement layers, the codedrepresentation of that layer may depend on the lower layers. E.g. themotion and mode information of the enhancement layer can be predictedfrom lower layers. Similarly, the pixel data of the lower layers can beused to create prediction for the enhancement layer.

A scalable video codec for quality scalability (also known asSignal-to-Noise or SNR) and/or spatial scalability may be implemented asfollows. For a base layer, a conventional non-scalable video encoder anddecoder is used. The reconstructed/decoded pictures of the base layerare included in the reference picture buffer for an enhancement layer.In H.264/AVC, HEVC, and similar codecs using reference picture list(s)for inter prediction, the base layer decoded pictures may be insertedinto a reference picture list(s) for coding/decoding of an enhancementlayer picture similarly to the decoded reference pictures of theenhancement layer. Consequently, the encoder may choose a base-layerreference picture as inter prediction reference and indicate its usee.g. with a reference picture index in the coded bitstream. The decoderdecodes from the bitstream, for example from a reference picture index,that a base-layer picture is used as inter prediction reference for theenhancement layer. When a decoded base-layer picture is used asprediction reference for an enhancement layer, it is referred to as aninter-layer reference picture.

Scalability modes or scalability dimensions may include but are notlimited to the following:

-   -   Quality scalability: Base layer pictures are coded at a lower        quality than enhancement layer pictures, which may be achieved        for example using a greater quantization parameter value (i.e.,        a greater quantization step size for transform coefficient        quantization) in the base layer than in the enhancement layer.    -   Spatial scalability: Base layer pictures are coded at a lower        resolution (i.e. have fewer samples) than enhancement layer        pictures. Spatial scalability and quality scalability may        sometimes be considered the same type of scalability.    -   Bit-depth scalability: Base layer pictures are coded at lower        bit-depth (e.g. 8 bits) than enhancement layer pictures (e.g. 10        or 12 bits).    -   Dynamic range scalability: Scalable layers represent a different        dynamic range and/or images obtained using a different tone        mapping function and/or a different optical transfer function.    -   Chroma format scalability: Base layer pictures provide lower        spatial resolution in chroma sample arrays (e.g. coded in 4:2:0        chroma format) than enhancement layer pictures (e.g. 4:4:4        format).    -   Color gamut scalability: enhancement layer pictures have a        richer/broader color representation range than that of the base        layer pictures—for example the enhancement layer may have UHDTV        (ITU-R BT.2020) color gamut and the base layer may have the        ITU-R BT.709 color gamut.    -   Region-of-interest (ROI) scalability: An enhancement layer        represents of spatial subset of the base layer. ROI scalability        may be used together with other types of scalability, e.g.        quality or spatial scalability so that the enhancement layer        provides higher subjective quality for the spatial subset.    -   View scalability, which may also be referred to as multiview        coding. The base layer represents a first view, whereas an        enhancement layer represents a second view.    -   Depth scalability, which may also be referred to as        depth-enhanced coding. A layer or some layers of a bitstream may        represent texture view(s), while other layer or layers may        represent depth view(s).

In all of the above scalability cases, base layer information could beused to code enhancement layer to minimize the additional bitrateoverhead.

Scalability can be enabled in two basic ways. Either by introducing newcoding modes for performing prediction of pixel values or syntax fromlower layers of the scalable representation or by placing the lowerlayer pictures to the reference picture buffer (decoded picture buffer,DPB) of the higher layer. The first approach is more flexible and thuscan provide better coding efficiency in most cases. However, the second,reference frame-based scalability, approach can be implemented veryefficiently with minimal changes to single layer codecs while stillachieving majority of the coding efficiency gains available. Essentiallya reference frame-based scalability codec can be implemented byutilizing the same hardware or software implementation for all thelayers, just taking care of the DPB management by external means.

An elementary unit for the output of encoders of some coding formats,such as HEVC, and the input of decoders of some coding formats, such asHEVC, is a Network Abstraction Layer (NAL) unit. For transport overpacket-oriented networks or storage into structured files, NAL units maybe encapsulated into packets or similar structures.

NAL units consist of a header and payload. In HEVC, a two-byte NAL unitheader is used for all specified NAL unit types, while in other codecsNAL unit header may be similar to that in HEVC.

In HEVC, the NAL unit header contains one reserved bit, a six-bit NALunit type indication, a three-bit temporal_id_plus1 indication fortemporal level or sub-layer (may be required to be greater than or equalto 1) and a six-bit nuh_layer_id syntax element. The temporal_id_plus1syntax element may be regarded as a temporal identifier for the NALunit, and a zero-based TemporalId variable may be derived as follows:TemporalId=temporal_id_plus1−1. The abbreviation TID may be used tointerchangeably with the TemporalId variable. TemporalId equal to 0corresponds to the lowest temporal level. The value of temporal_id_plus1is required to be non-zero in order to avoid start code emulationinvolving the two NAL unit header bytes. The bitstream created byexcluding all VCL NAL units having a TemporalId greater than or equal toa selected value and including all other VCL NAL units remainsconforming. Consequently, a picture having TemporalId equal to tid_valuedoes not use any picture having a TemporalId greater than tid_value asinter prediction reference. A sub-layer or a temporal sub-layer may bedefined to be a temporal scalable layer (or a temporal layer, TL) of atemporal scalable bitstream. Such temporal scalable layer may compriseVCL NAL units with a particular value of the TemporalId variable and theassociated non-VCL NAL units. nuh_layer_id can be understood as ascalability layer identifier.

NAL units can be categorized into Video Coding Layer (VCL) NAL units andnon-VCL NAL units. VCL NAL units are typically coded slice NAL units. InHEVC, VCL NAL units contain syntax elements representing one or more CU.In HEVC, the NAL unit type within a certain range indicates a VCL NALunit, and the VCL NAL unit type indicates a picture type.

Images can be split into independently codable and decodable imagesegments (e.g. slices or tiles or tile groups). Such image segments mayenable parallel processing, “Slices” in this description may refer toimage segments constructed of certain number of basic coding units thatare processed in default coding or decoding order, while “tiles” mayrefer to image segments that have been defined as rectangular imageregions. A tile group may be defined as a group of one or more tiles.Image segments may be coded as separate units in the bitstream, such asVCL NAL units in H.264/AVC and HEVC. Coded image segments may comprise aheader and a payload, wherein the header contains parameter valuesneeded for decoding the payload.

In the HEVC standard, a picture can be partitioned in tiles, which arerectangular and contain an integer number of CTUs. In the HEVC standard,the partitioning to tiles forms a grid that may be characterized by alist of tile column widths (in CTUs) and a list of tile row heights (inCTUs). Tiles are ordered in the bitstream consecutively in the rasterscan order of the tile grid. A tile may contain an integer number ofslices.

In the HEVC, a slice consists of an integer number of CTUs. The CTUs arescanned in the raster scan order of CTUs within tiles or within apicture, if tiles are not in use. A slice may contain an integer numberof tiles or a slice can be contained in a tile. Within a CTU, the CUshave a specific scan order.

In HEVC, a slice is defined to be an integer number of coding tree unitscontained in one independent slice segment and all subsequent dependentslice segments (if any) that precede the next independent slice segment(if any) within the same access unit. In HEVC, a slice segment isdefined to be an integer number of coding tree units orderedconsecutively in the tile scan and contained in a single NAL (NetworkAbstraction Layer) unit. The division of each picture into slicesegments is a partitioning. In HEVC, an independent slice segment isdefined to be a slice segment for which the values of the syntaxelements of the slice segment header are not inferred from the valuesfor a preceding slice segment, and a dependent slice segment is definedto be a slice segment for which the values of some syntax elements ofthe slice segment header are inferred from the values for the precedingindependent slice segment in decoding order. In HEVC, a slice header isdefined to be the slice segment header of the independent slice segmentthat is a current slice segment or is the independent slice segment thatprecedes a current dependent slice segment, and a slice segment headeris defined to be a part of a coded slice segment containing the dataelements pertaining to the first or all coding tree units represented inthe slice segment. The CUs are scanned in the raster scan order of LCUswithin tiles or within a picture, if tiles are not in use. Within anLCU, the CUs have a specific scan order.

In a draft version of H.266/VVC, pictures are partitioned to tile alonga tile grid (similarly to HEVC). Tiles are ordered in the bitstream intile raster scan order within a picture, and CTUs are ordered in thebitstream in raster scan order within a tile. A tile group contains oneor more entire tiles in bitstream order (i.e. tile raster scan orderwithin a picture), and a VCL NAL unit contains one tile group. Sliceshave not been included in the draft version of H.266/VVC. It is notedthat what was described in this paragraph might still evolve in laterdraft versions of H.266/VVC until the standard is finalized.

A motion-constrained tile set (MCTS) is such that the inter predictionprocess is constrained in encoding such that no sample value outside themotion-constrained tile set, and no sample value at a fractional sampleposition that is derived using one or more sample values outside themotion-constrained tile set, is used for inter prediction of any samplewithin the motion-constrained tile set. Additionally, the encoding of anMCTS is constrained in a manner that motion vector candidates are notderived from blocks outside the MCTS. This may be enforced by turningoff temporal motion vector prediction of HEVC, or by disallowing theencoder to use the TMVP candidate or any motion vector predictioncandidate following the TMVP candidate in the merge or AMVP candidatelist for PUs located directly left of the right tile boundary of theMCTS except the last one at the bottom right of the MCTS. In general, anMCTS may be defined to be a tile set that is independent of any samplevalues and coded data, such as motion vectors, that are outside theMCTS. An MCTS sequence may be defined as a sequence of respective MCTSsin one or more coded video sequences or alike. In some cases, an MCTSmay be required to form a rectangular area. It should be understood thatdepending on the context, an MCTS may refer to the tile set within apicture or to the respective tile set in a sequence of pictures. Therespective tile set may be, but in general need not be, collocated inthe sequence of pictures. A motion-constrained tile set may be regardedas an independently coded tile set, since it may be decoded without theother tile sets.

It is appreciated that sample locations used in inter prediction may besaturated so that a location that would be outside the picture otherwiseis saturated to point to the corresponding boundary sample of thepicture. Hence, in some use cases, if a tile boundary is also a pictureboundary, motion vectors may effectively cross that boundary or a motionvector may effectively cause fractional sample interpolation that wouldrefer to a location outside that boundary, since the sample locationsare saturated onto the boundary. In other use cases, specifically if acoded tile may be extracted from a bitstream where it is located on aposition adjacent to a picture boundary to another bitstream where thetile is located on a position that is not adjacent to a pictureboundary, encoders may constrain the motion vectors on pictureboundaries similarly to any MCTS boundaries.

The temporal motion-constrained tile sets SEI (Supplemental EnhancementInformation) message of HEVC can be used to indicate the presence ofmotion-constrained tile sets in the bitstream.

A non-VCL NAL unit may be for example one of the following types: asequence parameter set, a picture parameter set, a supplementalenhancement information (SEI) NAL unit, an access unit delimiter, an endof sequence NAL unit, an end of bitstream NAL unit, or a filler data NALunit. Parameter sets may be needed for the reconstruction of decodedpictures, whereas many of the other non-VCL NAL units are not necessaryfor the reconstruction of decoded sample values.

Some coding formats specify parameter sets that may carry parametervalues needed for the decoding or reconstruction of decoded pictures.Parameters that remain unchanged through a coded video sequence may beincluded in a sequence parameter set (SPS). In addition to theparameters that may be needed by the decoding process, the sequenceparameter set may optionally contain video usability information (VUI),which includes parameters that may be important for buffering, pictureoutput timing, rendering, and resource reservation. A picture parameterset (PPS) contains such parameters that are likely to be unchanged inseveral coded pictures. A picture parameter set may include parametersthat can be referred to by the coded image segments of one or more codedpictures. A header parameter set (HPS) has been proposed to contain suchparameters that may change on picture basis.

A parameter set may be activated when it is referenced e.g. through itsidentifier. For example, a header of an image segment, such as a sliceheader, may contain an identifier of the PPS that is activated fordecoding the coded picture containing the image segment. A PPS maycontain an identifier of the SPS that is activated, when the PPS isactivated. An activation of a parameter set of a particular type maycause the deactivation of the previously active parameter set of thesame type.

Instead of or in addition to parameter sets at different hierarchylevels (e.g. sequence and picture), video coding formats may includeheader syntax structures, such as a sequence header or a picture header.A sequence header may precede any other data of the coded video sequencein the bitstream order. A picture header may precede any coded videodata for the picture in the bitstream order.

The phrase along the bitstream (e.g. indicating along the bitstream) oralong a coded unit of a bitstream (e.g. indicating along a coded tile)may be used in claims and described embodiments to refer totransmission, signaling, or storage in a manner that the “out-of-band”data is associated with but not included within the bitstream or thecoded unit, respectively. The phrase decoding along the bitstream oralong a coded unit of a bitstream or alike may refer to decoding thereferred out-of-band data (which may be obtained from out-of-bandtransmission, signaling, or storage) that is associated with thebitstream or the coded unit, respectively. For example, the phrase alongthe bitstream may be used when the bitstream is contained in a containerfile, such as a file conforming to the ISO Base Media File Format, andcertain file metadata is stored in the file in a manner that associatesthe metadata to the bitstream, such as boxes in the sample entry for atrack containing the bitstream, a sample group for the track containingthe bitstream, or a timed metadata track associated with the trackcontaining the bitstream.

A coded picture is a coded representation of a picture.

A Random Access Point (RAP) picture, which may also be referred to as anintra random access point (IRAP) picture, may comprise only intra-codedimage segments. Furthermore, a RAP picture may constrain subsequencepictures in output order to be such that they can be correctly decodedwithout performing the decoding process of any pictures that precede theRAP picture in decoding order.

An access unit may comprise coded video data for a single time instanceand associated other data. In HEVC, an access unit (AU) may be definedas a set of NAL units that are associated with each other according to aspecified classification rule, are consecutive in decoding order, andcontain at most one picture with any specific value of nuh_layer_id. Inaddition to containing the VCL NAL units of the coded picture, an accessunit may also contain non-VCL NAL units. Said specified classificationrule may for example associate pictures with the same output time orpicture output count value into the same access unit.

It may be required that coded pictures appear in certain order within anaccess unit. For example, a coded picture with nuh_layer_id equal tonuhLayerIdA may be required to precede, in decoding order, all codedpictures with nuh_layer_id greater than nuhLayerIdA in the same accessunit.

A bitstream may be defined as a sequence of bits, which may in somecoding formats or standards be in the form of a NAL unit stream or abyte stream, that forms the representation of coded pictures andassociated data forming one or more coded video sequences. A firstbitstream may be followed by a second bitstream in the same logicalchannel, such as in the same file or in the same connection of acommunication protocol. An elementary stream (in the context of videocoding) may be defined as a sequence of one or more bitstreams. In somecoding formats or standards, the end of the first bitstream may beindicated by a specific NAL unit, which may be referred to as the end ofbitstream (EOB) NAL unit and which is the last NAL unit of thebitstream.

A coded video sequence (CVS) may be defined as such a sequence of codedpictures in decoding order that is independently decodable and isfollowed by another coded video sequence or the end of the bitstream.

Bitstreams or coded video sequences can be encoded to be temporallyscalable as follows. Each picture may be assigned to a particulartemporal sub-layer. Temporal sub-layers may be enumerated e.g. from 0upwards. The lowest temporal sub-layer, sub-layer 0, may be decodedindependently. Pictures at temporal sub-layer 1 may be predicted fromreconstructed pictures at temporal sub-layers 0 and 1. Pictures attemporal sub-layer 2 may be predicted from reconstructed pictures attemporal sub-layers 0, 1, and 2, and so on. In other words, a picture attemporal sub-layer N does not use any picture at temporal sub-layergreater than N as a reference for inter prediction. The bitstreamcreated by excluding all pictures greater than or equal to a selectedsub-layer value and including pictures remains conforming.

A sub-layer access picture may be defined as a picture from which thedecoding of a sub-layer can be started correctly, i.e. starting fromwhich all pictures of the sub-layer can be correctly decoded. In HEVCthere are two picture types, the temporal sub-layer access (TSA) andstep-wise temporal sub-layer access (STSA) picture types, that can beused to indicate temporal sub-layer switching points. If temporalsub-layers with TemporalId up to N had been decoded until the TSA orSTSA picture (exclusive) and the TSA or STSA picture has TemporalIdequal to N+1, the TSA or STSA picture enables decoding of all subsequentpictures (in decoding order) having TemporalId equal to N+1. The TSApicture type may impose restrictions on the TSA picture itself and allpictures in the same sub-layer that follow the TSA picture in decodingorder. None of these pictures is allowed to use inter prediction fromany picture in the same sub-layer that precedes the TSA picture indecoding order. The TSA definition may further impose restrictions onthe pictures in higher sub-layers that follow the TSA picture indecoding order. None of these pictures is allowed to refer a picturethat precedes the TSA picture in decoding order if that picture belongsto the same or higher sub-layer as the TSA picture. TSA pictures haveTemporalId greater than 0. The STSA is similar to the TSA picture butdoes not impose restrictions on the pictures in higher sub-layers thatfollow the STSA picture in decoding order and hence enable up-switchingonly onto the sub-layer where the STSA picture resides.

Available media file format standards include ISO base media file format(ISO/IEC 14496-12, which may be abbreviated ISOBMFF), MPEG-4 file format(ISO/IEC 14496-14, also known as the MP4 format), file format for NALunit structured video (ISO/IEC 14496-15) and 3GPP file format (3GPP TS26.244, also known as the 3GP format). The ISO file format is the basefor derivation of all the above mentioned file formats (excluding theISO file format itself). These file formats (including the ISO fileformat itself) are generally called the ISO family of file formats.

Some concepts, structures, and specifications of ISOBMFF are describedbelow as an example of a container file format, based on which theembodiments may be implemented. The aspects of the invention are notlimited to ISOBMFF, but rather the description is given for one possiblebasis on top of which the invention may be partly or fully realized.

A basic building block in the ISO base media file format is called abox. Each box has a header and a payload. The box header indicates thetype of the box and the size of the box in terms of bytes. A box mayenclose other boxes, and the ISO file format specifies which box typesare allowed within a box of a certain type. Furthermore, the presence ofsome boxes may be mandatory in each file, while the presence of otherboxes may be optional. Additionally, for some box types, it may beallowable to have more than one box present in a file. Thus, the ISObase media file format may be considered to specify a hierarchicalstructure of boxes.

According to the ISO family of file formats, a file includes media dataand metadata that are encapsulated into boxes. Each box is identified bya four character code (4CC) and starts with a header which informs aboutthe type and size of the box.

In files conforming to the ISO base media file format, the media datamay be provided in a media data ‘mdat’ box and the movie ‘moov’ box maybe used to enclose the metadata. In some cases, for a file to beoperable, both of the ‘mdat’ and ‘moov’ boxes may be required to bepresent. The movie ‘moov’ box may include one or more tracks, and eachtrack may reside in one corresponding TrackBox (‘trak’). A track may beone of the many types, including a media track that refers to samplesformatted according to a media compression format (and its encapsulationto the ISO base media file format). A track may be regarded as a logicalchannel.

Movie fragments may be used e.g. when recording content to ISO filese.g. in order to avoid losing data if a recording application crashes,runs out of memory space, or some other incident occurs. Without moviefragments, data loss may occur because the file format may require thatall metadata, e.g., the movie box, be written in one contiguous area ofthe file. Furthermore, when recording a file, there may not besufficient amount of memory space (e.g., random access memory RAM) tobuffer a movie box for the size of the storage available, andre-computing the contents of a movie box when the movie is closed may betoo slow. Moreover, movie fragments may enable simultaneous recordingand playback of a file using a regular ISO file parser. Furthermore, asmaller duration of initial buffering may be required for progressivedownloading, e.g., simultaneous reception and playback of a file whenmovie fragments are used and the initial movie box is smaller comparedto a file with the same media content but structured without moviefragments.

The movie fragment feature may enable splitting the metadata thatotherwise might reside in the movie box into multiple pieces. Each piecemay correspond to a certain period of time of a track. In other words,the movie fragment feature may enable interleaving file metadata andmedia data. Consequently, the size of the movie box may be limited andthe use cases mentioned above be realized.

In some examples, the media samples for the movie fragments may residein an mdat box, if they are in the same file as the moov box. For themetadata of the movie fragments, however, a moof box may be provided.The moof box may include the information for a certain duration ofplayback time that would previously have been in the moov box. The moovbox may still represent a valid movie on its own, but in addition, itmay include an mvex box indicating that movie fragments will follow inthe same file. The movie fragments may extend the presentation that isassociated to the moov box in time.

Within the movie fragment there may be a set of track fragments,including anywhere from zero to a plurality per track. The trackfragments may in turn include anywhere from zero to a plurality of trackruns (a.k.a. track fragment runs), each of which document is acontiguous run of samples for that track. Within these structures, manyfields are optional and can be defaulted. The metadata that may beincluded in the moof box may be limited to a subset of the metadata thatmay be included in a moov box and may be coded differently in somecases. Details regarding the boxes that can be included in a moof boxmay be found from the ISO base media file format specification. Aself-contained movie fragment may be defined to consist of a moof boxand an mdat box that are consecutive in the file order and where themdat box contains the samples of the movie fragment (for which the moofbox provides the metadata) and does not contain samples of any othermovie fragment (i.e. any other moof box).

The track reference mechanism can be used to associate tracks with eachother. The TrackReferenceBox includes box(es), each of which provides areference from the containing track to a set of other tracks. Thesereferences are labeled through the box type (i.e. the four-charactercode of the box) of the contained box(es).

TrackGroupBox, which is contained in TrackBox, enables indication ofgroups of tracks where each group shares a particular characteristic orthe tracks within a group have a particular relationship. The boxcontains zero or more boxes, and the particular characteristic or therelationship is indicated by the box type of the contained boxes. Thecontained boxes include an identifier, which can be used to conclude thetracks belonging to the same track group. The tracks that contain thesame type of a contained box within the TrackGroupBox and have the sameidentifier value within these contained boxes belong to the same trackgroup.

A uniform resource identifier (URI) may be defined as a string ofcharacters used to identify a name of a resource. Such identificationenables interaction with representations of the resource over a network,using specific protocols. A URI is defined through a scheme specifying aconcrete syntax and associated protocol for the URI. The uniformresource locator (URL) and the uniform resource name (URN) are forms ofURI. A URL may be defined as a URI that identifies a web resource andspecifies the means of acting upon or obtaining the representation ofthe resource, specifying both its primary access mechanism and networklocation. A URN may be defined as a URI that identifies a resource byname in a particular namespace. A URN may be used for identifying aresource without implying its location or how to access it.

Recently, Hypertext Transfer Protocol (HTTP) has been widely used forthe delivery of real-time multimedia content over the Internet, such asin video streaming applications. Unlike the use of the Real-timeTransport Protocol (RTP) over the User Datagram Protocol (UDP), HTTP iseasy to configure and is typically granted traversal of firewalls andnetwork address translators (NAT), which makes it attractive formultimedia streaming applications.

Several commercial solutions for adaptive streaming over HTTP, such asMicrosoft® Smooth Streaming, Apple® Adaptive HTTP Live Streaming andAdobe® Dynamic Streaming, have been launched as well as standardizationprojects have been carried out. Adaptive HTTP streaming (AHS) was firststandardized in Release 9 of 3rd Generation Partnership Project (3GPP)packet-switched streaming (PSS) service (3GPP TS 26.234 Release 9:“Transparent end-to-end packet-switched streaming service (PSS);protocols and codecs”). MPEG took 3GPP AHS Release 9 as a starting pointfor the MPEG DASH standard (ISO/IEC 23009-1: “Dynamic adaptive streamingover HTTP (DASH)-Part 1: Media presentation description and segmentformats,” International Standard, 2nd Edition, 2014). 3GPP continued towork on adaptive HTTP streaming in communication with MPEG and published3GP-DASH (Dynamic Adaptive Streaming over HTTP; 3GPP TS 26.247:“Transparent end-to-end packet-switched streaming Service (PSS);Progressive download and dynamic adaptive Streaming over HTTP(3GP-DASH)”. MPEG DASH and 3GP-DASH are technically close to each otherand may therefore be collectively referred to as DASH. Some concepts,formats, and operations of DASH are described below as an example of avideo streaming system, wherein the embodiments may be implemented. Theaspects of the invention are not limited to DASH, but rather thedescription is given for one possible basis on top of which theinvention may be partly or fully realized.

In DASH, the multimedia content may be stored on an HTTP server and maybe delivered using HTTP. The content may be stored on the server in twoparts: Media Presentation Description (MPD), which describes a manifestof the available content, its various alternatives, their URL addresses,and other characteristics; and segments, which contain the actualmultimedia bitstreams in the form of chunks, in a single file ormultiple files. The MDP provides the necessary information for clientsto establish a dynamic adaptive streaming over HTTP. The MPD containsinformation describing media presentation, such as an HTTP-uniformresource locator (URL) of each Segment to make GET Segment request. Toplay the content, the DASH client may obtain the MPD e.g. by using HTTP,email, thumb drive, broadcast, or other transport methods. By parsingthe MPD, the DASH client may become aware of the program timing,media-content availability, media types, resolutions, minimum andmaximum bandwidths, and the existence of various encoded alternatives ofmultimedia components, accessibility features and required digitalrights management (DRM), media-component locations on the network, andother content characteristics. Using this information, the DASH clientmay select the appropriate encoded alternative and start streaming thecontent by fetching the segments using e.g. HTTP GET requests. Afterappropriate buffering to allow for network throughput variations, theclient may continue fetching the subsequent segments and also monitorthe network bandwidth fluctuations. The client may decide how to adaptto the available bandwidth by fetching segments of differentalternatives (with lower or higher bitrates) to maintain an adequatebuffer.

In DASH, hierarchical data model is used to structure media presentationas follows. A media presentation consists of a sequence of one or morePeriods, each Period contains one or more Groups, each Group containsone or more Adaptation Sets, each Adaptation Sets contains one or moreRepresentations, each Representation consists of one or more Segments. ARepresentation is one of the alternative choices of the media content ora subset thereof typically differing by the encoding choice, e.g. bybitrate, resolution, language, codec, etc. The Segment contains certainduration of media data, and metadata to decode and present the includedmedia content. A Segment is identified by a URI and can typically berequested by a HTTP GET request. A Segment may be defined as a unit ofdata associated with an HTTP-URL and optionally a byte range that arespecified by an MPD.

The DASH MPD complies with Extensible Markup Language (XML) and istherefore specified through elements and attributes as defined in XML.

In DASH, all descriptor elements are structured in the same way, namelythey contain a @schemeIdUri attribute that provides a URI to identifythe scheme and an optional attribute @value and an optional attribute@id. The semantics of the element are specific to the scheme employed.The URI identifying the scheme may be a URN or a URL.

In DASH, an independent representation may be defined as arepresentation that can be processed independently of any otherrepresentations. An independent representation may be understood tocomprise an independent bitstream or an independent layer of abitstream. A dependent representation may be defined as a representationfor which Segments from its complementary representations are necessaryfor presentation and/or decoding of the contained media contentcomponents. A dependent representation may be understood to comprisee.g. a predicted layer of a scalable bitstream. A complementaryrepresentation may be defined as a representation which complements atleast one dependent representation. A complementary representation maybe an independent representation or a dependent representation.Dependent Representations may be described by a Representation elementthat contains a @dependencyId attribute. Dependent Representations canbe regarded as regular Representations except that they depend on a setof complementary Representations for decoding and/or presentation. The@dependencyId contains the values of the @id attribute of all thecomplementary Representations, i.e. Representations that are necessaryto present and/or decode the media content components contained in thisdependent Representation.

Track references of ISOBMFF can be reflected in the list offour-character codes in the @associationType attribute of DASH MPD thatis mapped to the list of Representation@id values given in the@associationId in a one to one manner. These attributes may be used forlinking media Representations with metadata Representations.

A DASH service may be provided as on-demand service or live service. Inthe former, the MPD is a static and all Segments of a Media Presentationare already available when a content provider publishes an MPD. In thelatter, however, the MPD may be static or dynamic depending on theSegment URLs construction method employed by a MPD and Segments arecreated continuously as the content is produced and published to DASHclients by a content provider. Segment URLs construction method may beeither template-based Segment URLs construction method or the Segmentlist generation method. In the former, a DASH client is able toconstruct Segment URLs without updating an MPD before requesting aSegment. In the latter, a DASH client has to periodically download theupdated MPDs to get Segment URLs. For live service, hence, thetemplate-based Segment URLs construction method is superior to theSegment list generation method.

An Initialization Segment may be defined as a Segment containingmetadata that is necessary to present the media streams encapsulated inMedia Segments. In ISOBMFF based segment formats, an InitializationSegment may comprise the Movie Box (‘moov’) which might not includemetadata for any samples, i.e. any metadata for samples is provided in‘moof’ boxes.

A Media Segment contains certain duration of media data for playback ata normal speed, such duration is referred as Media Segment duration orSegment duration. The content producer or service provider may selectthe Segment duration according to the desired characteristics of theservice. For example, a relatively short Segment duration may be used ina live service to achieve a short end-to-end latency. The reason is thatSegment duration is typically a lower bound on the end-to-end latencyperceived by a DASH client since a Segment is a discrete unit ofgenerating media data for DASH. Content generation is typically donesuch a manner that a whole Segment of media data is made available for aserver. Furthermore, many client implementations use a Segment as theunit for GET requests. Thus, in typical arrangements for live services aSegment can be requested by a DASH client only when the whole durationof Media Segment is available as well as encoded and encapsulated into aSegment. For on-demand service, different strategies of selectingSegment duration may be used.

A Segment may be further partitioned into Subsegments e.g. to enabledownloading segments in multiple parts. Subsegments may be required tocontain complete access units. Subsegments may be indexed by SegmentIndex box, which contains information to map presentation time range andbyte range for each Subsegment. The Segment Index box may also describesubsegments and stream access points in the segment by signaling theirdurations and byte offsets. A DASH client may use the informationobtained from Segment Index box(es) to make a HTTP GET request for aspecific Subsegment using byte range HTTP request. If relatively longSegment duration is used, then Subsegments may be used to keep the sizeof HTTP responses reasonable and flexible for bitrate adaptation. Theindexing information of a segment may be put in the single box at thebeginning of that segment, or spread among many indexing boxes in thesegment. Different methods of spreading are possible, such ashierarchical, daisy chain, and hybrid. This technique may avoid adding alarge box at the beginning of the segment and therefore may prevent apossible initial download delay.

The notation (Sub)segment refers to either a Segment or a Subsegment. IfSegment Index boxes are not present, the notation (Sub)segment refers toa Segment. If Segment Index boxes are present, the notation (Sub)segmentmay refer to a Segment or a Subsegment, e.g. depending on whether theclient issues requests on Segment or Subsegment basis.

MPEG-DASH defines segment-container formats for both ISO Base Media FileFormat and MPEG-2 Transport Streams. Other specifications may specifysegment formats based on other container formats. For example, a segmentformat based on Matroska container file format has been proposed.

DASH supports rate adaptation by dynamically requesting Media Segmentsfrom different Representations within an Adaptation Set to match varyingnetwork bandwidth. When a DASH client switches up/down Representation,coding dependencies within Representation have to be taken into account.A Representation switch may happen at a random access point (RAP), whichis typically used in video coding techniques such as H.264/AVC. In DASH,a more general concept named Stream Access Point (SAP) is introduced toprovide a codec-independent solution for accessing a Representation andswitching between Representations. In DASH, a SAP is specified as aposition in a Representation that enables playback of a media stream tobe started using only the information contained in Representation datastarting from that position onwards (preceded by initialising data inthe Initialisation Segment, if any). Hence, Representation switching canbe performed in SAP.

In DASH the automated selection between Representations in the sameAdaptation Set have been performed based on the width and height (@widthand @height); the frame rate (@frameRate); the bitrate (@bandwidth);indicated quality ordering between the Representations(@qualityRanking). The semantics of @qualityRanking are specified asfollows: specifies a quality ranking of the Representation relative toother Representations in the same Adaptation Set. Lower values representhigher quality content. If not present, then no ranking is defined.

Several types of SAP have been specified, including the following. SAPType 1 corresponds to what is known in some coding schemes as a “ClosedGOP random access point” (in which all pictures, in decoding order, canbe correctly decoded, resulting in a continuous time sequence ofcorrectly decoded pictures with no gaps) and in addition the firstpicture in decoding order is also the first picture in presentationorder. SAP Type 2 corresponds to what is known in some coding schemes asa “Closed GOP random access point” (in which all pictures, in decodingorder, can be correctly decoded, resulting in a continuous time sequenceof correctly decoded pictures with no gaps), for which the first picturein decoding order may not be the first picture in presentation order.SAP Type 3 corresponds to what is known in some coding schemes as an“Open GOP random access point”, in which there may be some pictures indecoding order that cannot be correctly decoded and have presentationtimes less than intra-coded picture associated with the SAP.

In some video coding standards, such as MPEG-2, each intra picture hasbeen a random access point in a coded sequence. The capability offlexible use of multiple reference pictures for inter prediction in somevideo coding standards, such as H.264/AVC and H.265/HEVC, has aconsequence that an intra picture may not be sufficient for randomaccess. Therefore, pictures may be marked with respect to their randomaccess point functionality rather than inferring such functionality fromthe coding type; for example an IDR picture as specified in theH.264/AVC standard can be used as a random access point. A closed groupof pictures (GOP) is such a group of pictures in which all pictures canbe correctly decoded. For example, in H.264/AVC, a closed GOP may startfrom an IDR access unit.

An open group of pictures (GOP) is such a group of pictures in whichpictures preceding the initial intra picture in output order may not becorrectly decodable but pictures following the initial intra picture inoutput order are correctly decodable. Such an initial intra picture maybe indicated in the bitstream and/or concluded from the indications fromthe bitstream, e.g. by using the CRA NAL unit type in HEVC. The picturespreceding the initial intra picture starting an open GOP in output orderand following the initial intra picture in decoding order may bereferred to as leading pictures. There are two types of leadingpictures: decodable and non-decodable. Decodable leading pictures, suchas RADL pictures of HEVC, are such that can be correctly decoded whenthe decoding is started from the initial intra picture starting the openGOP. In other words, decodable leading pictures use only the initialintra picture or subsequent pictures in decoding order as reference ininter prediction. Non-decodable leading pictures, such as RASL picturesof HEVC, are such that cannot be correctly decoded when the decoding isstarted from the initial intra picture starting the open GOP.

A DASH Preselection defines a subset of media components of an MPD thatare expected to be consumed jointly by a single decoder instance,wherein consuming may comprise decoding and rendering. The AdaptationSet that contains the main media component for a Preselection isreferred to as main Adaptation Set. In addition, each Preselection mayinclude one or multiple partial Adaptation Sets. Partial Adaptation Setsmay need to be processed in combination with the main Adaptation Set. Amain Adaptation Set and partial Adaptation Sets may be indicated by oneof the two means: a preselection descriptor or a Preselection element.

Virtual reality is a rapidly developing area of technology in whichimage or video content, sometimes accompanied by audio, is provided to auser device such as a user headset (a.k.a. head-mounted display). As isknown, the user device may be provided with a live or stored feed from acontent source, the feed representing a virtual space for immersiveoutput through the user device. Currently, many virtual reality userdevices use so-called three degrees of freedom (3DoF), which means thatthe head movement in the yaw, pitch and roll axes are measured anddetermine what the user sees, i.e. to determine the viewport. It isknown that rendering by taking the position of the user device andchanges of the position into account can enhance the immersiveexperience. Thus, an enhancement to 3DoF is a six degrees-of-freedom(6DoF) virtual reality system, where the user may freely move inEuclidean space as well as rotate their head in the yaw, pitch and rollaxes. Six degrees-of-freedom virtual reality systems enable theprovision and consumption of volumetric content. Volumetric contentcomprises data representing spaces and/or objects in three-dimensionsfrom all angles, enabling the user to move fully around the space and/orobjects to view them from any angle. Such content may be defined by datadescribing the geometry (e.g. shape, size, position in athree-dimensional space) and attributes such as colour, opacity andreflectance. The data may also define temporal changes in the geometryand attributes at given time instances, similar to frames intwo-dimensional video.

Terms 360-degree video or virtual reality (VR) video may sometimes beused interchangeably. They may generally refer to video content thatprovides such a large field of view (FOV) that only a part of the videois displayed at a single point of time in displaying arrangements. Forexample, VR video may be viewed on a head-mounted display (HMD) that maybe capable of displaying e.g. about 100-degree field of view. Thespatial subset of the VR video content to be displayed may be selectedbased on the orientation of the HMD. In another example, a flat-panelviewing environment is assumed, wherein e.g. up to 40-degreefield-of-view may be displayed. When displaying wide-FOV content (e.g.fisheye) on such a display, it may be preferred to display a spatialsubset rather than the entire picture.

MPEG Omnidirectional Media Format (ISO/IEC 23090-2) is a virtual reality(VR) system standard. OMAF defines a media format (comprising both fileformat derived from ISOBMFF and streaming formats for DASH and MPEGMedia Transport). OMAF version 1 supports 360° video, images, and audio,as well as the associated timed text and facilitates three degrees offreedom (3DoF) content consumption, meaning that a viewport can beselected with any azimuth and elevation range and tilt angle that arecovered by the omnidirectional content but the content is not adapted toany translational changes of the viewing position. Theviewport-dependent streaming scenarios described further below have alsobeen designed for 3DoF although could potentially be adapted to adifferent number of degrees of freedom.

OMAF is discussed with reference to FIG. 1. A real-world audio-visualscene (A) may be captured by audio sensors as well as a set of camerasor a camera device with multiple lenses and sensors. The acquisitionresults in a set of digital image/video (Bi) and audio (Ba) signals. Thecameras/lenses may cover all directions around the center point of thecamera set or camera device, thus the name of 360-degree video.

Audio can be captured using many different microphone configurations andstored as several different content formats, including channel-basedsignals, static or dynamic (i.e. moving through the 3D scene) objectsignals, and scene-based signals (e.g., Higher Order Ambisonics). Thechannel-based signals may conform to one of the loudspeaker layoutsdefined in CICP (Coding-Independent Code-Points). In an omnidirectionalmedia application, the loudspeaker layout signals of the renderedimmersive audio program may be binaraulized for presentation viaheadphones.

The images (Bi) of the same time instance are stitched, projected, andmapped onto a packed picture (D).

For monoscopic 360-degree video, the input images of one time instancemay be stitched to generate a projected picture representing one view.An example of image stitching, projection, and region-wise packingprocess for monoscopic content is illustrated with FIG. 2. Input images(Bi) are stitched and projected onto a three-dimensional projectionstructure that may for example be a unit sphere. The projectionstructure may be considered to comprise one or more surfaces, such asplane(s) or part(s) thereof. A projection structure may be defined asthree-dimensional structure consisting of one or more surface(s) onwhich the captured VR image/video content is projected, and from which arespective projected picture can be formed. The image data on theprojection structure is further arranged onto a two-dimensionalprojected picture (C). The term projection may be defined as a processby which a set of input images are projected onto a projected picture.There may be a pre-defined set of representation formats of theprojected picture, including for example an equirectangular projection(ERP) format and a cube map projection (CMP) format. It may beconsidered that the projected picture covers the entire sphere.

Optionally, a region-wise packing is then applied to map the projectedpicture (C) onto a packed picture (D). If the region-wise packing is notapplied, the packed picture is identical to the projected picture, andthis picture is given as input to image/video encoding. Otherwise,regions of the projected picture (C) are mapped onto a packed picture(D) by indicating the location, shape, and size of each region in thepacked picture, and the packed picture (D) is given as input toimage/video encoding. The term region-wise packing may be defined as aprocess by which a projected picture is mapped to a packed picture. Theterm packed picture may be defined as a picture that results fromregion-wise packing of a projected picture.

In the case of stereoscopic 360-degree video, as shown in an example ofFIG. 3, the input images of one time instance are stitched to generate aprojected picture representing two views (CL, CR), one for each eye.Both views (CL, CR) can be mapped onto the same packed picture (D), andencoded by a traditional 2D video encoder. Alternatively, each view ofthe projected picture can be mapped to its own packed picture, in whichcase the image stitching, projection, and region-wise packing isperformed as illustrated in FIG. 2. A sequence of packed pictures ofeither the left view or the right view can be independently coded or,when using a multiview video encoder, predicted from the other view.

An example of image stitching, projection, and region-wise packingprocess for stereoscopic content where both views are mapped onto thesame packed picture, as shown in FIG. 3 is described next in moredetailed manner. Input images (Bi) are stitched and projected onto twothree-dimensional projection structures, one for each eye. The imagedata on each projection structure is further arranged onto atwo-dimensional projected picture (CL for left eye, CR for right eye),which covers the entire sphere. Frame packing is applied to pack theleft view picture and right view picture onto the same projectedpicture. Optionally, region-wise packing is then applied to the packprojected picture onto a packed picture, and the packed picture (D) isgiven as input to image/video encoding. If the region-wise packing isnot applied, the packed picture is identical to the projected picture,and this picture is given as input to image/video encoding.

The image stitching, projection, and region-wise packing process can becarried out multiple times for the same source images to createdifferent versions of the same content, e.g. for different orientationsof the projection structure. Similarly, the region-wise packing processcan be performed multiple times from the same projected picture tocreate more than one sequence of packed pictures to be encoded.

360-degree panoramic content (i.e., images and video) cover horizontallythe full 360-degree field-of-view around the capturing position of animaging device. The vertical field-of-view may vary and can be e.g. 180degrees. Panoramic image covering 360-degree field-of-view horizontallyand 180-degree field-of-view vertically can be represented by a spherethat has been mapped to a two-dimensional image plane usingequirectangular projection (ERP). In this case, the horizontalcoordinate may be considered equivalent to a longitude, and the verticalcoordinate may be considered equivalent to a latitude, with notransformation or scaling applied. The process of forming a monoscopicequirectangular panorama picture is illustrated in FIG. 4. A set ofinput images, such as fisheye images of a camera array or a cameradevice with multiple lenses and sensors, is stitched onto a sphericalimage. The spherical image is further projected onto a cylinder (withoutthe top and bottom faces). The cylinder is unfolded to form atwo-dimensional projected picture. In practice one or more of thepresented steps may be merged; for example, the input images may bedirectly projected onto a cylinder without an intermediate projectiononto a sphere. The projection structure for equirectangular panorama maybe considered to be a cylinder that comprises a single surface.

In general, 360-degree content can be mapped onto different types ofsolid geometrical structures, such as polyhedron (i.e. athree-dimensional solid object containing flat polygonal faces, straightedges and sharp corners or vertices, e.g., a cube or a pyramid),cylinder (by projecting a spherical image onto the cylinder, asdescribed above with the equirectangular projection), cylinder (directlywithout projecting onto a sphere first), cone, etc. and then unwrappedto a two-dimensional image plane.

In some cases panoramic content with 360-degree horizontal field-of-viewbut with less than 180-degree vertical field-of-view may be consideredspecial cases of equirectangular projection, where the polar areas ofthe sphere have not been mapped onto the two-dimensional image plane. Insome cases a panoramic image may have less than 360-degree horizontalfield-of-view and up to 180-degree vertical field-of-view, whileotherwise has the characteristics of equirectangular projection format.

Region-wise packing information may be encoded as metadata in or alongthe bitstream.

For example, the packing information may comprise a region-wise mappingfrom a pre-defined or indicated source format to the packed pictureformat, e.g. from a projected picture to a packed picture, as describedearlier.

Rectangular region-wise packing metadata may be described as follows:

For each region, the metadata defines a rectangle in a projectedpicture, the respective rectangle in the packed picture, and an optionaltransformation of rotation by 90, 180, or 270 degrees and/or horizontaland/or vertical mirroring. Rectangles may, for example, be indicated bythe locations of the top-left corner and the bottom-right corner. Themapping may comprise resampling. As the sizes of the respectiverectangles can differ in the projected and packed pictures, themechanism infers region-wise resampling.

Among other things, region-wise packing provides signalling for thefollowing usage scenarios:

-   1) Additional compression for viewport-independent projections is    achieved by densifying sampling of different regions to achieve more    uniformity across the sphere. For example, the top and bottom parts    of ERP are oversampled, and region-wise packing can be applied to    down-sample them horizontally.-   2) Arranging the faces of plane-based projection formats, such as    cube map projection, in an adaptive manner-   3) Generating viewport-dependent bitstreams that use    viewport-independent projection formats. For example, regions of ERP    or faces of CMP can have different sampling densities and the    underlying projection structure can have different orientations.-   4) Indicating regions of the packed pictures represented by an    extractor track. This is needed when an extractor track collects    tiles from bitstreams of different resolutions.

A guard band may be defined as an area in a packed picture that is notrendered but may be used to improve the rendered part of the packedpicture to avoid or mitigate visual artifacts such as seams.

Referring again to FIG. 1, the OMAF allows the omission of imagestitching, projection, and region-wise packing and encode theimage/video data in their captured format. In this case, images (D) areconsidered the same as images (Bi) and a limited number of fisheyeimages per time instance are encoded.

For audio, the stitching process is not needed, since the capturedsignals are inherently immersive and omnidirectional.

The stitched images (D) are encoded as coded images (Ei) or a codedvideo bitstream (Ev). The captured audio (Ba) is encoded as an audiobitstream (Ea). The coded images, video, and/or audio are then composedinto a media file for file playback (F) or a sequence of aninitialization segment and media segments for streaming (Fs), accordingto a particular media container file format. In this specification, themedia container file format is the ISO base media file format. The fileencapsulator also includes metadata into the file or the segments, suchas projection and region-wise packing information assisting in renderingthe decoded packed pictures.

The metadata in the file may include:

-   -   the projection format of the projected picture,    -   fisheye video parameters,    -   the area of the spherical surface covered by the packed picture,    -   the orientation of the projection structure corresponding to the        projected picture relative to the global coordinate axes,    -   region-wise packing information, and    -   region-wise quality ranking (optional).

Region-wise packing information may be encoded as metadata in or alongthe bitstream, for example as region-wise packing SEI message(s) and/oras region-wise packing boxes in a file containing the bitstream. Forexample, the packing information may comprise a region-wise mapping froma pre-defined or indicated source format to the packed picture format,e.g. from a projected picture to a packed picture, as described earlier.The region-wise mapping information may for example comprise for eachmapped region a source rectangle (a.k.a. projected region) in theprojected picture and a destination rectangle (a.k.a. packed region) inthe packed picture, where samples within the source rectangle are mappedto the destination rectangle and rectangles may for example be indicatedby the locations of the top-left corner and the bottom-right corner. Themapping may comprise resampling. Additionally or alternatively, thepacking information may comprise one or more of the following: theorientation of the three-dimensional projection structure relative to acoordinate system, indication which projection format is used,region-wise quality ranking indicating the picture quality rankingbetween regions and/or first and second spatial region sequences, one ormore transformation operations, such as rotation by 90, 180, or 270degrees, horizontal mirroring, and vertical mirroring. The semantics ofpacking information may be specified in a manner that they areindicative for each sample location within packed regions of a decodedpicture which is the respective spherical coordinate location.

The segments (Fs) may be delivered using a delivery mechanism to aplayer.

The file that the file encapsulator outputs (F) is identical to the filethat the file decapsulator inputs (F′). A file decapsulator processesthe file (F′) or the received segments (F′s) and extracts the codedbitstreams (E′a, E′v, and/or E′i) and parses the metadata. The audio,video, and/or images are then decoded into decoded signals (B′a foraudio, and D′ for images/video). The decoded packed pictures (D′) areprojected onto the screen of a head-mounted display or any other displaydevice based on the current viewing orientation or viewport and theprojection, spherical coverage, projection structure orientation, andregion-wise packing metadata parsed from the file. Likewise, decodedaudio (B′a) is rendered, e.g. through headphones, according to thecurrent viewing orientation. The current viewing orientation isdetermined by the head tracking and possibly also eye trackingfunctionality. Besides being used by the renderer to render theappropriate part of decoded video and audio signals, the current viewingorientation may also be used the video and audio decoders for decodingoptimization.

The process described above is applicable to both live and on-demand usecases.

At any point of time, a video rendered by an application on a HMD or onanother display device renders a portion of the 360-degree video. Thisportion may be defined as a viewport. A viewport may be understood as awindow on the 360-degree world represented in the omnidirectional videodisplayed via a rendering display. According to another definition, aviewport may be defined as a part of the spherical video that iscurrently displayed. A viewport may be characterized by horizontal andvertical field of views (FOV or FoV).

A viewpoint may be defined as the point or space from which the userviews the scene; it usually corresponds to a camera position. Slighthead motion does not imply a different viewpoint. A viewing position maybe defined as the position within a viewing space from which the userviews the scene. A viewing space may be defined as a 3D space of viewingpositions within which rendering of image and video is enabled and VRexperience is valid.

Typical representation formats for volumetric content include trianglemeshes, point clouds and voxels. Temporal information about the contentmay comprise individual capture instances, i.e. frames or the positionof objects as a function of time.

Advances in computational resources and in three-dimensional acquisitiondevices enable reconstruction of highly-detailed volumetricrepresentations. Infrared, laser, time-of-flight and structured lighttechnologies are examples of how such content may be constructed. Therepresentation of volumetric content may depend on how the data is to beused. For example, dense voxel arrays may be used to representvolumetric medical images. In three-dimensional graphics, polygon meshesare extensively used. Point clouds, on the other hand, are well suitedto applications such as capturing real-world scenes where the topologyof the scene is not necessarily a two-dimensional surface or manifold.Another method is to code three-dimensional data to a set of texture anddepth maps. Closely related to this is the use of elevation andmulti-level surface maps. For the avoidance of doubt, embodiments hereinare applicable to any of the above technologies.

“Voxel” of a three-dimensional world corresponds to a pixel of atwo-dimensional world. Voxels exist in a three-dimensional grid layout.An octree is a tree data structure used to partition a three-dimensionalspace. Octrees are the three-dimensional analog of quadtrees. A sparsevoxel octree (SVO) describes a volume of a space containing a set ofsolid voxels of varying sizes. Empty areas within the volume are absentfrom the tree, which is why it is called “sparse”.

A three-dimensional volumetric representation of a scene may bedetermined as a plurality of voxels on the basis of input streams of atleast one multicamera device. Thus, at least one but preferably aplurality (i.e. 2, 3, 4, 5 or more) of multicamera devices may be usedto capture 3D video representation of a scene. The multicamera devicesare distributed in different locations in respect to the scene, andtherefore each multicamera device captures a different 3D videorepresentation of the scene. The 3D video representations captured byeach multicamera device may be used as input streams for creating a 3Dvolumetric representation of the scene, said 3D volumetricrepresentation comprising a plurality of voxels. Voxels may be formedfrom the captured 3D points e.g. by merging the 3D points into voxelscomprising a plurality of 3D points such that for a selected 3D point,all neighbouring 3D points within a predefined threshold from theselected 3D point are merged into a voxel without exceeding a maximumnumber of 3D points in a voxel.

Voxels may also be formed through the construction of the sparse voxeloctree. Each leaf of such a tree represents a solid voxel in worldspace; the root node of the tree represents the bounds of the world. Thesparse voxel octree construction may have the following steps: 1) mapeach input depth map to a world space point cloud, where each pixel ofthe depth map is mapped to one or more 3D points; 2) determine voxelattributes such as colour and surface normal vector by examining theneighbourhood of the source pixel(s) in the camera images and the depthmap; 3) determine the size of the voxel based on the depth value fromthe depth map and the resolution of the depth map; 4) determine the SVOlevel for the solid voxel as a function of its size relative to theworld bounds; 5) determine the voxel coordinates on that level relativeto the world bounds; 6) create new and/or traversing existing SVO nodesuntil arriving at the determined voxel coordinates; 7) insert the solidvoxel as a leaf of the tree, possibly replacing or merging attributesfrom a previously existing voxel at those coordinates. Nevertheless, thesize of voxel within the 3D volumetric representation of the scene maydiffer from each other. The voxels of the 3D volumetric representationthus represent the spatial locations within the scene.

A volumetric video frame may be regarded as a complete sparse voxeloctree that models the world at a specific point in time in a videosequence. Voxel attributes contain information like colour, opacity,surface normal vectors, and surface material properties. These arereferenced in the sparse voxel octrees (e.g. colour of a solid voxel),but can also be stored separately.

Point clouds are commonly used data structures for storing volumetriccontent. Compared to point clouds, sparse voxel octrees describe arecursive subdivision of a finite volume with solid voxels of varyingsizes, while point clouds describe an unorganized set of separate pointslimited only by the precision of the used coordinate values.

In technologies such as dense point clouds and voxel arrays, there maybe tens or even hundreds of millions of points. In order to store andtransport such content between entities, such as between a server and aclient over an IP network, compression is usually required.

User's position can be detected relative to content provided within thevolumetric virtual reality content, e.g. so that the user can movefreely within a given virtual reality space, around individual objectsor groups of objects, and can view the objects from different anglesdepending on the movement (e.g. rotation and location) of their head inthe real world. In some examples, the user may also view and explore aplurality of different virtual reality spaces and move from one virtualreality space to another one.

The angular extent of the environment observable or hearable through arendering arrangement, such as with a head-mounted display, may becalled the visual field of view (FOV). The actual FOV observed or heardby a user depends on the inter-pupillary distance and on the distancebetween the lenses of the virtual reality headset and the user's eyes,but the FOV can be considered to be approximately the same for all usersof a given display device when the virtual reality headset is being wornby the user.

When viewing volumetric content from a single viewing position, aportion (often half) of the content may not be seen because it is facingaway from the user. This portion is sometimes called “back facingcontent”.

A volumetric image/video delivery system may comprise providing aplurality of patches representing part of a volumetric scene, andproviding, for each patch, patch visibility information indicative of aset of directions from which a forward surface of the patch is visible.A volumetric image/video delivery system may further comprise providingone or more viewing positions associated with a client device, andprocessing one or more of the patches dependent on whether the patchvisibility information indicates that the forward surface of the one ormore patches is visible from the one or more viewing positions.

Patch visibility information is data indicative of where in thevolumetric space the forward surface of the patch can be seen. Forexample, patch visibility information may comprise a visibility cone,which may comprise a visibility cone direction vector (X, Y, Z) and anopening angle (A). The opening angle (A) defines a set of spatial anglesfrom which the forward surface of the patch can be seen. In anotherexample, the patch visibility metadata may comprise a definition of abounding sphere surface and sphere region metadata, identical or similarto that specified by the omnidirectional media format (OMAF) standard(ISO/IEC 23090-2). The bounding sphere surface may for example bedefined by a three-dimensional location of the centre of the sphere, andthe radius of the sphere. When the viewing position collocates with thebounding sphere surface, the patch may be considered visible within theindicated sphere region. In general, the geometry of the boundingsurface may also be something other than a sphere, such as cylinder,cube, or cuboid. Multiple sets of patch visibility metadata may bedefined for the same three-dimensional location of the centre of thebounding surface, but with different radii (or information indicative ofthe distance of the bounding surface from the three-dimensionallocation). Indicating several pieces of patch visibility metadata may bebeneficial to handle occlusions.

A volumetric image/video delivery system may comprise one or more patchculling modules. One patch culling module may be configured to determinewhich patches are transmitted to a user device, for example therendering module of the headset. Another patch culling module may beconfigured to determine which patches are decoded. A third patch cullingmodule may be configured to determine which decoded patches are passedto rendering. Any combination of patch culling modules may be present oractive in a volumetric image/video delivery or playback system. Patchculling may utilize the patch visibility information of patches, thecurrent viewing position, the current viewing orientation, the expectedfuture viewing positions, and/or the expected future viewingorientations.

In some cases, each volumetric patch may be projected to atwo-dimensional colour (or other form of texture) image and to acorresponding depth image, also known as a depth map. This conversionenables each patch to be converted back to volumetric form at a clientrendering module of the headset using both images.

In some cases, a source volume of a volumetric image, such as a pointcloud frame, may be projected onto one or more projection surfaces.Patches on the projection surfaces may be determined, and those patchesmay be arranged onto one or more two-dimensional frames. As above,texture and depth patches may be formed similarly. shows a projection ofa source volume to a projection surface, and inpainting of a sparseprojection. In other words, a three-dimensional (3D) scene model,comprising geometry primitives such as mesh elements, points, and/orvoxel, is projected onto one or more projection surfaces. Theseprojection surface geometries may be “unfolded” onto 2D planes(typically two planes per projected source volume: one for texture, onefor depth). The “unfolding” may include determination of patches. 2Dplanes may then be encoded using standard 2D image or video compressiontechnologies. Relevant projection geometry information may betransmitted alongside the encoded video files to the decoder. Thedecoder may then decode the coded image/video sequence and perform theinverse projection to regenerate the 3D scene model object in anydesired representation format, which may be different from the startingformat e.g. reconstructing a point cloud from original mesh model data.

In some cases, multiple points of volumetric video or image (e.g. pointcloud) are projected to the same pixel position. Such cases may behandled by creating more than one “layer”. It is remarked that theconcept of layer in volumetric video, such as point cloud compression,may differ from the concept of layer in scalable video coding. Thus,terms such as PCC layer or volumetric video layer may be used to make adistinction from a layer of scalable video coding. Each volumetric (3D)patch may be projected onto more than one 2D patch, representingdifferent layers of visual data, such as points, projected onto the same2D positions. The patches may be organized for example based onascending distance to the projection plane. More precisely the followingexample process may be used to create two layers but could begeneralized to other number of layers too: Let H(u,v) be the set ofpoints of the current patch that get projected to the same pixel (u, v).The first layer, also called the near layer, stores the point of H(u,v)with the lowest depth D0. The second layer, referred to as the farlayer, captures the point of H(u,v) with the highest depth within theinterval [D0, D0+?], where ? is a user-defined parameter that describesthe surface thickness.

It should be understood that volumetric image/video can comprise,additionally or alternatively to texture and depth, other types ofpatches, such as reflectance, opacity or transparency (e.g. alphachannel patches), surface normal, albedo, and/or other material orsurface attribute patches.

Two-dimensional form of patches may be packed into one or more atlases.Texture atlases are known in the art, comprising an image consisting ofsub-images, the image being treated as a single unit by graphicshardware and which can be compressed and transmitted as a single imagefor subsequent identification and decompression. Geometry atlases may beconstructed similarly to texture atlases. Texture and geometry atlasesmay be treated as separate pictures (and as separate picture sequencesin case of volumetric video), or texture and geometry atlases may bepacked onto the same frame, e.g. similarly to how frame packing isconventionally performed. Atlases may be encoded as frames with an imageor video encoder.

The sub-image layout in an atlas may also be organized such that it ispossible to encode a patch or a set of patches having similar visibilityinformation into spatiotemporal units that can be decoded independentlyof other spatiotemporal units. For example, a tile grid, as understoodin the context of High Efficiency Video Coding (HEVC), may be selectedfor encoding and an atlas may be organized in a manner such that a patchor a group of patches having similar visibility information can beencoded as a motion-constrained tile set (MCTS).

In some cases, one or more (but not the entire set of) spatiotemporalunits may be provided and stored as a track, as is understood in thecontext of the ISO base media file format, or as any similar containerfile format structure. Such a track may be referred to as a patch track.Patch tracks may for example be sub-picture tracks, as understood in thecontext of OMAF, or tile tracks, as understood in the context of ISO/IEC14496-15.

In some cases, several versions of the one or more atlases are encoded.Different versions may include, but are not limited to, one or more ofthe following: different bitrate versions of the one or more atlases atthe same resolution; different spatial resolutions of the atlases; anddifferent versions for different random access intervals; these mayinclude one or more intra-coded atlases (where every picture can berandomly accessed).

In some cases, combinations of patches from different versions of thetexture atlas may be prescribed and described as metadata, such asextractor tracks, as will be understood in the context of OMAF and/orISO/IEC 14496-15.

When the total sample count of a texture atlas and, in some cases, ofthe respective geometry pictures and/or other auxiliary pictures (ifany) exceeds a limit, such as a level limit of a video codec, aprescription may be authored in a manner so that the limit is obeyed.For example, patches may be selected from a lower-resolution textureatlas according to subjective importance. The selection may be performedin a manner that is not related to the viewing position. Theprescription may be accompanied by metadata characterizing the obeyedlimit(s), e.g. the codec Level that is obeyed.

A prescription may be made specific to a visibility cone (or generallyto a specific visibility) and hence excludes the patches not visible inthe visibility cone. The selection of visibility cones for which theprescriptions are generated may be limited to a reasonable number, suchthat switching from one prescription to another is not expected to occurfrequently. The visibility cones of prescriptions may overlap to avoidswitching back and forth between two prescriptions. The prescription maybe accompanied by metadata indicative of the visibility cone (orgenerally visibility information).

A prescription may use a specific grid or pattern of independentspatiotemporal units. For example, a prescription may use a certain tilegrid, wherein tile boundaries are also MCTS boundaries. The prescriptionmay be accompanied by metadata indicating potential sources (e.g. trackgroups, tracks, or representations) that are suitable as spatiotemporalunits.

In some cases, a patch track forms a Representation in the context ofDASH. Consequently, the Representation element in DASH MPD may providemetadata on the patch, such as patch visibility metadata, related to thepatch track. Clients may select patch Representations and request(Sub)segments from the selected Representations on the basis of patchvisibility metadata.

A collector track may be defined as a track that extracts implicitly orexplicitly coded video data, such as coded video data of MCTSs orsub-pictures, from other tracks. When resolved by a file reader oralike, a collector track may result into a bitstream that conforms to avideo coding standard or format. A collector track may for exampleextract MCTSs or sub-pictures to form a coded picture sequence whereMCTSs or sub-pictures are arranged to a grid. For example, when acollector track extracts two MCTSs or sub-pictures, they may be arrangedinto a 2×1 grid of MCTSs or sub-pictures. As discussed subsequently, anextractor track that extracts MCTSs or sub-pictures from other tracksmay be regarded as a collector track. A tile base track as discussedsubsequently is another example of a collector track. A collector trackmay also be called a collection track. A track that is a source forextracting to a collector track may be referred to as a collection itemtrack.

Extractors specified in ISO/IEC 14496-15 for H.264/AVC and HEVC enablecompact formation of tracks that extract NAL unit data by reference. Anextractor is a NAL-unit-like structure. A NAL-unit-like structure may bespecified to comprise a NAL unit header and NAL unit payload like anyNAL units, but start code emulation prevention (that is required for aNAL unit) might not be followed in a NAL-unit-like structure. For HEVC,an extractor contains one or more constructors. A sample constructorextracts, by reference, NAL unit data from a sample of another track. Anin-line constructor includes NAL unit data. The term in-line may bedefined e.g. in relation to a data unit to indicate that a containingsyntax structure contains or carries the data unit (as opposed toincludes the data unit by reference or through a data pointer). When anextractor is processed by a file reader that requires it, the extractoris logically replaced by the bytes resulting when resolving thecontained constructors in their appearance order. Nested extraction maybe disallowed, e.g. the bytes referred to by a sample constructor shallnot contain extractors; an extractor shall not reference, directly orindirectly, another extractor. An extractor may contain one or moreconstructors for extracting data from the current track or from anothertrack that is linked to the track in which the extractor resides bymeans of a track reference of type ‘scal’. The bytes of a resolvedextractor may represent one or more entire NAL units. A resolvedextractor starts with a valid length field and a NAL unit header. Thebytes of a sample constructor are copied only from the single identifiedsample in the track referenced through the indicated ‘scal’ trackreference. The alignment is on decoding time, i.e. using thetime-to-sample table only, followed by a counted offset in samplenumber. Extractors are a media-level concept and hence apply to thedestination track before any edit list is considered. (However, onewould normally expect that the edit lists in the two tracks would beidentical).

In viewport-dependent streaming, which may be also referred to asviewport-adaptive streaming (VAS) or viewport-specific streaming, asubset of 360-degree video content covering the viewport (i.e., thecurrent view orientation) is transmitted at a better quality and/orhigher resolution than the quality and/or resolution for the remainingof 360-degree video. There are several alternatives to achieveviewport-dependent omnidirectional video streaming. In tile-basedviewport-dependent streaming, projected pictures are partitioned intotiles that are coded as motion-constrained tile sets (MCTSs) or alike.Several versions of the content are encoded at different bitrates orqualities using the same MCTS partitioning. Each MCTS sequence is madeavailable for streaming as a DASH Representation or alike. The playerselects on MCTS basis which bitrate or quality is received.

H.264/AVC does not include the concept of tiles, but the operation likeMCTSs can be achieved by arranging regions vertically as slices andrestricting the encoding similarly to encoding of MCTSs. For simplicity,the terms tile and MCTS are used in this document but should beunderstood to apply to H.264/AVC too in a limited manner. In general,the terms tile and MCTS should be understood to apply to similarconcepts in any coding format or specification.

One possible subdivision of the tile-based viewport-dependent streamingschemes is the following:

-   -   Region-wise mixed quality (RWMQ) 360° video: Several versions of        the content are coded with the same resolution, the same tile        grid, and different bitrate/picture quality. Players choose        high-quality MCTSs for the viewport.    -   Viewport+360° video: One or more bitrate and/or resolution        versions of a complete low-resolution/low-quality        omnidirectional video are encoded and made available for        streaming. In addition, MCTS-based encoding is performed and        MCTS sequences are made available for streaming. Players receive        a complete low-resolution/low-quality omnidirectional video and        select and receive the high-resolution MCTSs covering the        viewport.    -   Region-wise mixed resolution (RWMR) 360° video: MCTSs are        encoded at multiple resolutions. Players select a combination of        high resolution MCTSs covering the viewport and low-resolution        MCTSs for the remaining areas.

It needs to be understood that there may be other ways to subdividetile-based viewport-dependent streaming methods to categories than theone described above. Moreover, the above-described subdivision may notbe exhaustive, i.e. they may be tile-based viewport-dependent streamingmethods that do not belong to any of the described categories.

All above-described viewport-dependent streaming approaches, tiles orMCTSs (or guard bands of tiles or MCTSs) may overlap in sphere coverageby an amount selected in the pre-processing or encoding.

All above-described viewport-dependent streaming approaches may berealized with client-driven bitstream rewriting (a.k.a. late binding) orwith author-driven MCTS merging (a.k.a. early binding). In late binding,a player selects MCTS sequences to be received, selectively rewritesportions of the received video data as necessary (e.g. parameter setsand slice segment headers may need to be rewritten) for combining thereceived MCTSs into a single bitstream, and decodes the singlebitstream. Early binding refers to the use of author-driven informationfor rewriting portions of the received video data as necessary, formerging of MCTSs into a single bitstream to be decoded, and in somecases for selection of MCTS sequences to be received. There may beapproaches in between early and late binding: for example, it may bepossible to let players select MCTS sequences to be received withoutauthor guidance, while an author-driven approach is used for MCTSmerging and header rewriting. Early binding approaches include anextractor-driven approach and tile track approach, which are describedsubsequently.

In the tile track approach, one or more motion-constrained tile setsequences are extracted from a bitstream, and each extractedmotion-constrained tile set sequence is stored as a tile track (e.g. anHEVC tile track) in a file. A tile base track (e.g. an HEVC tile basetrack) may be generated and stored in a file. The tile base trackrepresents the bitstream by implicitly collecting motion-constrainedtile sets from the tile tracks. At the receiver side the tile tracks tobe streamed may be selected based on the viewing orientation. The clientmay receive tile tracks covering the entire omnidirectional content.Better quality or higher resolution tile tracks may be received for thecurrent viewport compared to the quality or resolution covering theremaining 360-degree video. A tile base track may include trackreferences to the tile tracks, and/or tile tracks may include trackreferences to the tile base track. For example, in HEVC, the ‘sabt’track reference is used to refer to tile tracks from a tile base track,and the tile ordering is indicated by the order of the tile trackscontained by a ‘sabt’ track reference. Furthermore, in HEVC, a tiletrack has is a ‘tbas’ track reference to the tile base track.

In the extractor-driven approach, one or more motion-constrained tileset sequences are extracted from a bitstream, and each extractedmotion-constrained tile set sequence is modified to become a compliantbitstream of its own (e.g. HEVC bitstream) and stored as a sub-picturetrack (e.g. with untransformed sample entry type ‘hvc1’ for HEVC) in afile. One or more extractor tracks (e.g. an HEVC extractor tracks) maybe generated and stored in a file. The extractor track represents thebitstream by explicitly extracting (e.g. by HEVC extractors)motion-constrained tile sets from the sub-picture tracks. At thereceiver side the sub-picture tracks to be streamed may be selectedbased on the viewing orientation. The client may receive sub-picturetracks covering the entire omnidirectional content. Better quality orhigher resolution sub-picture tracks may be received for the currentviewport compared to the quality or resolution covering the remaining360-degree video.

It needs to be understood that even though the tile track approach andextractor-driven approach are described in details, specifically in thecontext of HEVC, they apply to other codecs and similar concepts as tiletracks or extractors. Moreover, a combination or a mixture of tile trackand extractor-driven approach is possible. For example, such a mixturecould be based on the tile track approach, but where a tile base trackcould contain guidance for rewriting operations for the client, e.g. thetile base track could include rewritten slice or tile group headers.

As an alternative to MCTS-based content encoding, content authoring fortile-based viewport-dependent streaming may be realized withsub-picture-based content authoring, described as follows. Thepre-processing (prior to encoding) comprises partitioning uncompressedpictures to sub-pictures. Several sub-picture bitstreams of the sameuncompressed sub-picture sequence are encoded, e.g. at the sameresolution but different qualities and bitrates. The encoding may beconstrained in a manner that merging of coded sub-picture bitstream to acompliant bitstream representing omnidirectional video is enabled. Forexample, dependencies on samples outside the decoded picture boundariesmay be avoided in the encoding by selecting motion vectors in a mannerthat sample locations outside the picture would not be referred in theinter prediction process. Each sub-picture bitstream may be encapsulatedas a sub-picture track, and one or more extractor tracks merging thesub-picture tracks of different sub-picture locations may beadditionally formed. If a tile track based approach is targeted, eachsub-picture bitstream is modified to become an MCTS sequence and storedas a tile track in a file, and one or more tile base tracks are createdfor the tile tracks.

Tile-based viewport-dependent streaming approaches may be realized byexecuting a single decoder instance or one decoder instance per MCTSsequence (or in some cases, something in between, e.g. one decoderinstance per MCTSs of the same resolution), e.g. depending on thecapability of the device and operating system where the player runs. Theuse of single decoder instance may be enabled by late binding or earlybinding. To facilitate multiple decoder instances, the extractor-drivenapproach may use sub-picture tracks that are compliant with the codingformat or standard without modifications. Other approaches may needeither to rewrite image segment headers, parameter sets, and/or alikeinformation in the client side to construct a conforming bitstream or tohave a decoder implementation capable of decoding an MCTS sequencewithout the presence of other coded video data.

There may be at least two approaches for encapsulating and referencingtile tracks or sub-picture tracks in the tile track approach and theextractor-driven approach, respectively:

-   -   Referencing track identifiers from a tile base track or an        extractor track.    -   Referencing tile group identifiers from a tile base track or an        extractor track, wherein the tile group identified by a tile        group identifier contains the collocated tile tracks or the        sub-picture tracks that are alternatives for extraction.

In the RWMQ method, one extractor track per each picture size and eachtile grid is sufficient. In 360°+viewport video and RWMR video, oneextractor track may be needed for each distinct viewing orientation.

An approach similar to above-described tile-based viewport-dependentstreaming approaches, which may be referred to as tile rectangle basedencoding and streaming, is described next. This approach may be usedwith any video codec, even if tiles similar to HEVC were not availablein the codec or even if motion-constrained tile sets or alike were notimplemented in an encoder. In tile rectangle based encoding, the sourcecontent is split into tile rectangle sequences before encoding. Eachtile rectangle sequence covers a subset of the spatial area of thesource content, such as full panorama content, which may e.g. be ofequirectangular projection format. Each tile rectangle sequence is thenencoded independently from each other as a single-layer bitstream.Several bitstreams may be encoded from the same tile rectangle sequence,e.g. for different bitrates. Each tile rectangle bitstream may beencapsulated in a file as its own track (or alike) and made availablefor streaming. At the receiver side the tracks to be streamed may beselected based on the viewing orientation. The client may receive trackscovering the entire omnidirectional content. Better quality or higherresolution tracks may be received for the current viewport compared tothe quality or resolution covering the remaining, currently non-visibleviewports. In an example, each track may be decoded with a separatedecoder instance.

In viewport-adaptive streaming, the primary viewport (i.e., the currentviewing orientation) is transmitted at a good quality/resolution, whilethe remaining of 360-degree video is transmitted at a lowerquality/resolution. When the viewing orientation changes, e.g. when theuser turns his/her head when viewing the content with a head-mounteddisplay, another version of the content needs to be streamed, matchingthe new viewing orientation. In general, the new version can berequested starting from a stream access point (SAP), which are typicallyaligned with (Sub)segments. In single-layer video bitstreams, SAPscorrespond to random-access pictures, are intra-coded, and are hencecostly in terms of rate-distortion performance. Conventionally,relatively long SAP intervals and consequently relatively long(Sub)segment durations in the order of seconds are hence typically used.Thus, the delay (here referred to as the viewport quality update delay)in upgrading the quality after a viewing orientation change (e.g. a headturn) is conventionally in the order of seconds and is therefore clearlynoticeable and annoying.

As explained above, viewport switching in viewport-dependent streaming,which may be compliant with MPEG OMAF, is enabled at stream accesspoints, which involve intra coding and hence a greater bitrate comparedto respective inter coded pictures at the same quality. A compromisebetween the stream access point interval and the rate-distortionperformance is hence chosen in an encoding configuration.

Viewport-adaptive streaming of equal-resolution HEVC bitstreams withMCTSs is described in the following as an example. Several HEVCbitstreams of the same omnidirectional source content may be encoded atthe same resolution but different qualities and bitrates usingmotion-constrained tile sets. The MCTS grid in all bitstreams isidentical. In order to enable the client the use of the same tile basetrack for reconstructing a bitstream from MCTSs received from differentoriginal bitstreams, each bitstream is encapsulated in its own file, andthe same track identifier is used for each tile track of the same tilegrid position in all these files. HEVC tile tracks are formed from eachmotion-constrained tile set sequence, and a tile base track isadditionally formed. The client may parse tile base track to implicitlyreconstruct a bitstream from the tile tracks. The reconstructedbitstream can be decoded with a conforming HEVC decoder.

Clients can choose which version of each MCTS is received. The same tilebase track suffices for combining MCTSs from different bitstreams, sincethe same track identifiers are used in the respective tile tracks.

FIG. 5 illustrates an example how tile tracks of the same resolution canbe used for tile-based omnidirectional video streaming. A 4×2 tile gridhas been used in forming of the motion-constrained tile sets. Two HEVCbitstreams originating from the same source content are encoded atdifferent picture qualities and bitrates. Each bitstream may beencapsulated in its own file wherein each motion-constrained tile setsequence may be included in one tile track and a tile base track is alsoincluded. The client may choose the quality at which each tile track isreceived based on the viewing orientation. In this example the clientreceives tile tracks 1, 2, 5, and 6 at a particular quality and tiletracks 3, 4, 7, and 8 at another quality. The tile base track is used toorder the received tile track data into a bitstream that can be decodedwith an HEVC decoder.

In current video codecs, different parts of the original content needsto be packed into 2D frame to be coded by a conventional 2D video codec.Video coding formats have constraints on spatial partitioning ofpictures. For example, HEVC uses a tile grid of picture-wide tile rowsand picture-high tile columns specified in units of CTUs with certainminimum with and height constraints for tile columns and tile rows.Different parts may have different sizes, so their optimal packing alongspatial partitioning units of 2D video codecs might not be possible.There may also be empty spaces (areas that are not allocated by anyparts of the original content but are anyhow coded and decoded) in thepacked picture. These empty spaces, however not needed by the receiver,are counted as effective pixels for the codec, and should anyway beencoded and decoded. This leads to inefficient packing. Known solutionsfor overcoming this drawback, have concentrated on the possibility ofmore flexible and/or finer granularity tiling, e.g. tile granularity ofCUs or tile partitioning that needs not use a tile grid of picture-widetile rows and picture-high tile columns.

As another drawback, in viewport dependent 360-streaming, correspondingtiles need to be selected and arranged in a coded 2D picture. This alsoneeds some changes to the coded data, since the tile positions in theencoder output differ from those of the merged bitstream that is inputto the decoder. Thus, parameter sets and slice headers need to berewritten for the merged bitstream. Known solutions for overcoming thisdrawback of extraction for viewport-dependent 360-degree streaming havebeen related to e.g. a client-side slice header rewriting, which,however, is not part of a standardized decoding operation, and may notbe supported by decoder APIs and decoder implementations; or anextractor track with rewritten slice header, which relates to ISO/IEC14496-15 including the design for extractors, which can be used forrewriting parameter sets and slice headers in the extractor track, whilethe tile data is included by reference. Such an approach may require oneextractor track per each possible extracted combination, such as oneextractor track per each range of 360-degree video viewing orientationsthat results in a different set of picked tiles.

Yet, as another drawback, there is a rate-distortion penalty in the casethat different parts of a content (e.g. different tiles) are needed tobe coded independently (e.g. using motion constrained tile set techniquein viewport-adaptive streaming application or ROI enhancement layer).For example a 12×8 MCTS grid has been found to have an averageBjontegaard delta bitrate increase of more than 10% over 14 ERP testsequences, peaking at 22.5% when compared to coding without tiles. Knownsolutions for overcoming this drawback relate to modification of motioncompensation filter near the motion constrained tile border to reducethe RD (Rate Distortion) penalty of MCTS tool; or to modification of thepredicted block and removal of its dependency to other tiles which arecoded in MCTS mode, which reduce the RD penalty of MCTS tool.

The present embodiments are related to sub-picture-based video codecoperation. Visual content at specific time instances is divided intoseveral parts, were each part is represented using a sub-picture.Respective sub-pictures at different time instances form a sub-picturesequence, wherein the definition of “respective” may depend on thecontext, but can be for example the same spatial portion of a picturearea in a sequence of pictures or the content acquired with the samesettings, such as the same acquisition position, orientation, andprojection surface. A picture at specific time instance may be definedas a collection of all the sub-pictures at the specific time instance.Each sub-picture is coded using a conventional video encoder, andreconstructed sub-picture is stored in a reconstructed sub-picturememory corresponding to the sub-picture sequence. For predicting asub-picture at a particular sub-picture sequence, the encoder can usereconstructed sub-pictures of the same sub-picture sequence as referencefor prediction. Coded sub-pictures are included as separate units (e.g.VCL NAL units) in the same bitstream.

A decoder receives coded video data (e.g. a bitstream). A sub-picture isdecoded as a separate unit from other sub-pictures using a conventionalvideo decoder. The decoded sub-picture may be buffered using a decodedpicture buffering process. The decoded picture buffering process mayprovide the decoded sub-picture of a particular sub-picture sequence tothe decoder, and the decoder may use the decoded sub-picture asreference for prediction for predicting a sub-picture at the samesub-picture sequence.

FIG. 6 illustrates an example of a decoder. The decoder receives codedvideo data (e.g. a bitstream). A sub-picture is decoded in a decodingprocess 610 as a separate unit from other sub-pictures using aconventional video decoder. The decoded sub-picture may be bufferedusing a decoded picture buffering process 620. The decoded picturebuffering process may provide the decoded sub-picture of a particularsub-picture sequence to the decoding process 610, and the decoder mayuse the decoded sub-picture as a reference for prediction for predictinga sub-picture at the same sub-picture sequence.

The decoded picture buffering process 620 may comprise asub-picture-sequence-wise buffering, which may comprise marking ofreconstructed sub-pictures as “used for reference” and “unused forreference” as well as keeping track of whether reconstructedsub-pictures have been output from the decoder. The buffering ofsub-picture sequences may be independent form each other, or may besynchronized in one or both of the following ways:

-   -   the output of all reconstructed sub-pictures of the same time        instance may be performed synchronously.    -   the reference picture marking of reconstructed sub-pictures of        the same time instance may be performed synchronously.

The sub-picture-sequence-wise buffering 730 may be illustrated with FIG.7. The example illustrates decoding of two sub-picture sequences, whichhave the same height but different width. It needs to be understood thatthe number of sub-picture sequences and/or the sub-picture dimensionscould have been chosen differently and these choices are only meant aspossible examples.

According to an embodiment, output from a decoder comprises a collectionof the different and separate decoded sub-pictures.

According to another example an output picture, which may also oralternatively be referred to as a decoded picture, from a decodingprocess is a collection of the different and separate sub-pictures.According to another embodiment, the output picture is composed byarranging reconstructed sub-pictures into a two-dimensional (2D)picture. This embodiment keeps a conventional design of a single outputpicture (per time instance) as the output of a video decoder and hencecan be straightforward for integrating to systems. The decodedsub-pictures are provided to a decoded sub-picture buffering. Thedecoding process may then use buffered sub-picture(s) as a reference fordecoding succeeding pictures. The decoding process may obtain anindication or infer which of the decoded sub-picture(s) are to be usedas a source for generating manipulated sub-picture(s). Thosesub-pictures are provided to a reference sub-picture manipulationprocess. Manipulated reference sub-pictures are then provided to thedecoded sub-picture buffering, where the manipulated referencesub-pictures are buffered. The sub-pictures and the manipulatedreference sub-pictures may then be used by the output picturecompositing process that takes the picture composition data as input andarranges reconstructed sub-pictures into output pictures. An encoderencodes picture composition data into or along the bitstream, whereinthe picture composition data is indicative of how reconstructedsub-pictures are to be arranged into 2D picture(s) forming outputpicture(s). A decoder decodes picture composition data from or along thebitstream and forms an output picture from reconstructed sub-picturesand/or manipulated reference sub-pictures according to the decodedpicture composition data. The decoding or picture composition data mayhappen as a part of or operationally connected with the output picturecompositing process. Thus, a conventional video decoding process decodesthe picture composition data.

According to another embodiment, an example of which is shown in FIG. 8,an output picture, which may also or alternatively be referred to as adecoded picture, is composed by arranging reconstructed sub-picturesinto a two-dimensional (2D) picture. This embodiment keeps aconventional design of a single output picture (per time instance) asthe output of a video decoder and hence can be straightforward forintegrating to systems. An encoder encodes picture composition data intoor along the bitstream, wherein the picture composition data isindicative of how reconstructed sub-pictures are to be arranged into 2Dpicture(s) forming output picture(s). A decoder decodes picturecomposition data from or along the bitstream and forms an output picturefrom reconstructed sub-pictures according to the decoded picturecomposition data. The decoding or picture composition data may happen asa part of or operationally connected with the decoded picture bufferingprocess 820. Thus, a conventional video decoding process needs to decodethe picture composition data.

According to an embodiment, the picture composition data is encoded inor along the bitstream and/or decoded from or along the bitstream usingthe bitstream or decoding order of sub-pictures and the dimensions ofsub-pictures. An algorithm for positioning sub-pictures within a picturearea is followed in an encoder and/or in a decoder, wherein sub-picturesare input to the algorithm in their bitstream or decoding order. In anembodiment, the algorithm for positioning sub-pictures within a picturearea is the following: When a picture comprises multiple sub-picturesand when encoding of a picture and/or decoding of a coded picture isstarted, each CTU location in the reconstructed or decoded picture ismarked as unoccupied. For each sub-picture in bitstream or decodingorder, the sub-picture takes the next such unoccupied location in CTUraster scan order within a picture that is large enough to fit thesub-picture within the picture boundaries.

FIG. 9 illustrates a further example of the embodiment shown in FIG. 8,for arranging time-aligned reconstructed sub-pictures side-by-side intoan output picture. The decoded picture buffering process 920 maycomprise an output picture compositing process 940 that takes thepicture composition data as input and arranges reconstructedsub-pictures into output pictures. The example illustrates decoding oftwo sub-picture sequences, which have the same height but differentwidth. In this example the output picture compositing process 940arranges time-aligned reconstructed sub-pictures side-by-side ontooutput pictures. It needs to be understood that the number ofsub-picture sequences and/or the sub-picture dimensions could have beenchosen differently and these choices are only meant as possibleexamples.

According to an embodiment, an encoder indicates in or along thebitstream if

-   -   the decoder is intended to output a collection of the different        and separate decoded sub-pictures; or    -   the decoder is intended to generate output pictures according to        the picture composition data; or    -   the decoder is allowed to perform either of the options above.

According to an embodiment, a decoder decodes from or along thebitstream if

-   -   the decoder is intended to output a collection of the different        and separate decoded sub-pictures; or    -   the decoder is intended to generate output pictures according to        the picture composition data; or    -   the decoder is allowed to perform either of the options above.

The decoder adapts its operation to conform to the decoded intent orallowance.

According to an embodiment, a decoder includes an interface forselecting at least among outputting a collection of the different andseparate decoded sub-pictures or generating output pictures according tothe picture composition data. The decoder adapts its operation toconform to what has been indicated through the interface.

According to an embodiment, pictures are divided into sub-pictures, tilegroups and tiles. A tile may be defined similarly to an HEVC tile, thusa tile may be defined as a sequence of CTUs that cover a rectangularregion of a picture. A tile group may be defined as a sequence of tilesin tile raster scan within a sub-picture. It may be specified that A VCLNAL unit contains exactly one tile group, i.e. a tile group is containedin exactly one VCL NAL unit. A sub-picture may be defined as arectangular set of one or more entire tile groups. In an embodiment, apicture is partitioned to sub-pictures, i.e. the entire picture isoccupied by sub-pictures and there are no unoccupied areas within apicture. In another embodiment, a picture comprises sub-pictures and oneor more unoccupied areas.

According to an embodiment, an encoder encodes in or along the bitstreamand/or a decoder decodes from or along the bitstream informationindicative of one or more tile partitionings for sub-pictures. A tilepartitioning may for example be a tile grid specified as widths andheights of tile columns and tile rows, respectively. An encoder encodesin or along a bitstream and/or a decoder decodes from or along thebitstream which tile partitioning applies for a particular sub-pictureor sub-picture sequence. In an embodiment, syntax elements describing atile partitioning are encoded in and/or decoded from a picture parameterset, and a PPS is activated for a sub-picture e.g. through a PPSidentifier in a tile group header. Each sub-picture may refer to its ownPPS and may hence have its own tile partitioning. For example, FIG. 10illustrates a picture that is divided into 4 sub-pictures. Eachsub-picture may have its own tile grid. In this example sub-picture 1 isdivided into a grid of 3×2 tiles of equal width and equal height,sub-picture 2 is divided into 2×1 tiles of 3 and 5 CTUs high. Each ofsub-pictures 3 and 4 has only one tile. Sub-picture 1 has 3 tile groupscontaining 1, 3, and 2 tiles, respectively. Each of sub-pictures 2, 3,and 4 has one tile group.

FIG. 10 also illustrates the above-discussed algorithm for positioningsub-pictures within a picture area. Sub-picture 1 is the first indecoding order and thus placed in the top-left corner of the picturearea. Sub-picture 2 is the second in decoding order and thus placed tothe next unoccupied location in raster scan order. The algorithm alsooperates the same way for the third and fourth sub-pictures in decodingorder, i.e. sub-pictures 3 and 4, respectively. The sub-picture decodingorder is indicated with the number (1, 2, 3, 4) outside the pictureboundaries.

According to an embodiment, an encoder encodes in the bitstream and/or adecoder decodes from the bitstream, e.g. in an image segment header suchas a tile group header, information indicative of one or more tilepositions within a sub-picture. For example, a tile position of thefirst tile, in decoding order, of the image segment or tile group may beencoded and/or decoded. In an embodiment, a decoder concludes that thecurrent image segment or tile group is the first image segment or tilegroup of a sub-picture, when the first tile of an image segment or tilegroup is the top-left tile of a sub-picture (e.g. having a tile addressor tile index equal to 0 in raster scan order of tiles). In anembodiment, in relation to concluding a first image segment or tilegroup, a decoder concludes if a new access unit is started. In anembodiment, it is concluded that a new access is started when thepicture order count value or syntax element value(s) related to pictureorder count (such as least significant bits of picture order count)differ from that of the previous sub-picture.

According to an embodiment, decoded picture buffering is performed onpicture-basis rather than on sub-picture basis. An encoder and/or adecoder generates a reference picture from decoded sub-pictures of thesame access unit or time instance using the picture composition data.The generation of a reference picture is performed identically orsimilarly to what is described in other embodiments for generatingoutput pictures. When a reference picture is referenced in encodingand/or decoding of a sub-picture, reference sub-pictures for encodingand/or decoding the sub-picture are generated by extracting the areacollocating with the current sub-picture from the reference pictures inthe decoded picture buffer. Thus, the decoding process gets referencesub-picture(s) from the decoded picture buffering process similarly toother embodiments, and the decoding process may operate similarly toother embodiments.

In an embodiment, an encoder selects reference pictures for predicting acurrent sub-picture in a manner that the reference pictures contain asub-picture that has the same location as the current sub-picture(within the picture) and the same dimensions (width and height) as thecurrent sub-picture. An encoder avoids selecting reference pictures forpredicting a current sub-picture if the reference pictures do notcontain a sub-picture that has the same location as the currentsub-picture (within the picture) or the same dimensions as the currentsub-picture. In an embodiment, sub-pictures of the same access unit ortime instance are allowed to have different types, such as random-accesssub-picture and non-random-access sub-picture, defined similarly to whathas been described earlier in relation to NAL unit types and/or picturetypes. An encoder encodes a first access unit with both a random-accesssub-picture in a first location and size and a non-random-accesssub-picture in a second location and size, and a subsequent access unitin decoding order including a sub-picture in the first location and sizeconstrained in a manner that reference pictures preceding the firstaccess unit in decoding order are avoided, and including anothersub-picture in the second location and size using a reference picturepreceding the first access unit decoding order as a reference forprediction.

In an embodiment, for encoding and/or decoding a current sub-picture, anencoder and/or a decoder includes only such reference pictures into theinitial reference picture list that contain a sub-picture that has thesame location as the current sub-picture (within the picture) and thesame dimensions (width and height) as the current sub-picture. Referencepictures into that do not contain a sub-picture that has the samelocation as the current sub-picture (within the picture) or the samedimensions (width and height) as the current sub-picture are skipped orexcluded for generating an initial reference picture list for encodingand/or decoding the current sub-picture. In an embodiment, sub-picturesof the same access unit or time instance are allowed to have differenttypes, such as random-access sub-picture and non-random-accesssub-picture, defined similarly to what has been described earlier inrelation to NAL unit types and/or picture types. Reference picture listinitialization process or algorithm in an encoder and/or a decoder onlyincludes the previous random-access sub-picture and subsequentsub-pictures, in decoding order, in an initial reference picture listand skips or excludes sub-pictures preceding, in decoding order, theprevious random-access sub-picture.

According to an embodiment, a sub-picture at a second sub-picturesequence is predicted from one or more sub-pictures of a firstsub-picture sequence. Spatial relationship of the sub-picture inrelation to the one or more sub-pictures of the first sub-picturesequence is either inferred or indicated by an encoder in or along thebitstream and/or decoded by a decoder from or along the bitstream. Inthe absence of such spatial relationship information in or along thebitstream, an encoder and/or a decoder may infer that the sub-picturesare collocated, i.e. exactly overlapping for spatial correspondence inprediction. The spatial relationship information is independent of thepicture composition data. For example, sub-pictures may be composed tobe above each other in an output picture (in a top-bottom packingarrangement) while they are considered to be collocated for prediction.

An embodiment of an encoding process or a decoding process isillustrated in FIG. 11, where the arrows from the first sub-picture tothe second sub-picture sequence indicate prediction. In the example ofFIG. 11, the sub-pictures may be inferred to be collocated forprediction.

According to an embodiment, an encoder indicates a sub-picture sequenceidentifier or alike in or along the bitstream in a manner that thesub-picture sequence identifier is associated with coded video dataunits, such as VCL NAL units. According to an embodiment, a decoderdecodes a sub-picture sequence identifier or alike from or along thebitstream in a manner that the sub-picture sequence identifier isassociated with coded video data units and/or the respectivereconstructed sub-pictures. The syntax structure containing thesub-picture sequence identifier and the association mechanism mayinclude but are not limited to one or more of the following:

-   -   A sub-picture sequence identifier included in a NAL unit header        and associated with the NAL unit.    -   A sub-picture sequence identifier included in a header included        in a VCL NAL unit, such as a tile group header or a slice header        and associated with the respective image segment (e.g. tile        group or slice).    -   A sub-picture sequence identifier included in a sub-picture        delimiter, a picture header, or alike syntax structure, which is        implicitly referenced by coded video data. A sub-picture        delimiter may for example be a specific NAL unit that starts a        new sub-picture. Implicit referencing may for example mean that        the previous syntax structure (e.g. sub-picture delimiter or        picture header) in decoding or bitstream order may be        referenced.    -   A sub-picture sequence identifier included in a header parameter        set, a picture parameter set or alike syntax structure, which is        explicitly referenced by coded video data. Explicit referencing        may for example mean that the identifier of the reference        parameter set is included in the coded video data, such as in a        tile group header or in a slice header.

In an embodiment, sub-picture sequence identifier values are validwithin a pre-defined subset of a bitstream (which may be called“validity period” or “validity subset”), which may be but is not limitedto one of the following:

-   -   A single access unit, i.e. coded video data for a single time        instance.    -   A coded video sequence.    -   From a closed random-access access unit (inclusive) until the        next closed random-access access unit (exclusive) or the end of        the bitstream. A closed random-access access unit may be defined        as an access unit within and after which all present sub-picture        sequences start with a closed random-access sub-picture. A        closed random-access sub-picture may be defined as an        intra-coded sub-picture, which is followed, in decoding order,        by no such sub-pictures in the same sub-picture sequence that        reference any sub-picture preceding the intra-coded sub-picture,        in decoding order, in the same sub-picture sequence. In an        embodiment, a closed random-access sub-picture may either be an        intra-coded sub-picture or a sub-picture associated with and        predicted only from external reference sub-picture(s) (see an        embodiment described further below) and is otherwise constrained        as described above.    -   The entire bitstream.

In an embodiment, sub-picture sequence identifier values are validwithin an indicated subset of a bitstream. An encoder may for exampleinclude a specific NAL unit in the bitstream, where the NAL unitindicates a new period for sub-picture sequence identifiers that isunrelated to earlier period(s) of sub-picture sequence identifiers.

In an embodiment, a sub-picture with a particular sub-picture sequenceidentifier value is concluded to be within the same sub-picture sequenceas a preceding sub-picture in decoding order that has the samesub-picture sequence identifier value, when both sub-pictures are withinthe same validity period of sub-picture sequence identifiers. When twopictures are on different validity periods of sub-picture sequenceidentifiers or have different sub-picture sequence identifiers, they areconcluded to be in different sub-picture sequences.

In an embodiment, a sub-picture sequence identifier is a fixed-lengthcodeword. The number of bits in the fixed-length codeword may be encodedinto or along the bitstream, e.g. in a video parameter set or a sequenceparameter set, and/or may be decoded from or along the bitstream, e.g.from a video parameter set or a sequence parameter set.

In an embodiment, a sub-picture sequence identifier is a variable-lengthcodeword, such as an exponential-Golomb code or alike.

According to an embodiment, an encoder indicates a mapping of VCL NALunits or image segments, in decoding order, to sub-pictures orsub-picture sequences in or along the bitstream, e.g. in a videoparameter set, a sequence parameter set, or a picture parameter set.Likewise, according to an embodiment, a decoder decodes a mapping of VCLNAL units or image segments, in decoding order, to sub-pictures orsub-picture sequence from or along the bitstream. The mapping mayconcern a single time instance or access unit at a time.

In an embodiment, several mappings are provided e.g. in a singlecontainer syntax structure and each mapping is indexed or explicitlyidentified e.g. with an identifier value.

In an embodiment, an encoder indicates in the bitstream, e.g. in anaccess unit header or delimiter, a picture parameter set, a headerparameter set, a picture header, a header of an image segment (e.g. tilegroup or slice), which mapping applies to a particular access unit ortime instance. Likewise, in an embodiment, a decoder decodes form thebitstream which mapping applies to a particular access unit or timeinstance. In an embodiment, the indication which mapping applies is anindex to a list of several mappings (specified e.g. in a sequenceparameter set) or an identifier to a set of several mappings (specifiede.g. in a sequence parameter set). In another embodiment, the indicationwhich mapping applies comprises the mapping itself e.g. as a list ofsub-picture sequence identifiers for VCL NAL units in decoding orderincluded in the access unit associated with the mapping.

According to an embodiment, the decoder concludes the sub-picture orsub-picture sequence for a VCL NAL unit or image segment as follows:

-   -   The start of an access unit is concluded e.g. as specified in a        coding specification, or the start of a new time instance is        concluded as specified in a packetization or container file        specification.    -   The mapping applied to the access unit or time instance is        concluded according to any earlier embodiment.    -   For each VCL NAL unit or image segment in decoding order, the        respective sub-picture sequence or sub-picture is concluded from        the mapping.

An example embodiment is provided below with the following designdecisions:

-   -   The mappings are specified in a sequence parameter set.    -   The mappings are specified to map VCL NAL units to sub-picture        sequences.    -   Indicating which mapping applies for a particular access unit or        time instance takes place in a tile group header.

It should be understood that other embodiments could be similarlyrealized with other design decisions, e.g. container syntax structures,mapping for image segments rather than VCL NAL units, and mapping forsub-pictures rather than sub-picture sequences.

seq_parameter_set_rbsp( ) { Descriptor  ...  num_subpic_patterns ue(v) if( num_subpic_patterns > 0) {   subpic_seq_id_len_minus1 ue(v)   for(i = 0; i < num_subpic_patterns; i++ ) {    num_vcl_nal_units_minus1[ i ]ue(v)    for( j = 0; j <= num_vcl_nal_units_minus1[ i ]; j++ )    subpic_seq_id[ i ][ j ] u(v)   }  }  ...

The semantics of syntax elements may be specified as follows:num_subpicpatterns equal to 0 specifies that sub-picture-based decodingis not in use. num_subpicpatterns greater than 0 specifies the number ofmappings from VCL NAL units to sub-picture sequence identifiers.subpic_seq_id_len_minus1 plus 1 specifies the length of thesubpic_seq_id[i][j] syntax element in bits. num_vcl_nal_units_minus1[i]plus 1 specifies the number of VCL NAL units that are mapped in the i-thmapping. subpic_seq_id[i][j] specifies the sub-picture sequenceidentifier of the j-th VCL NAL unit in decoding order in an access unitassociated with the i-th mapping.

tile_group_header( ) { Descriptor  ...  if( num_subpic_patterns > 0 )  subpic_pattern_idx u(v)  ...

The semantics of subpic_pattern_idx may be specified as follows.subpic_pattern_idx specifies the index of the mapping from VCL NAL unitsto sub-picture sequence identifiers that applies for this access unit.It may be required that subpic_pattern_idx has the same value in alltile_group_header( ) syntax structures of the same access unit.

According to an embodiment, a random-access sub-picture of a particularsub-picture sequence may be predicted from one or more referencesub-pictures of other sub-picture sequences (excluding the particularsub-picture sequence). One of the following may be required and may beindicated for a random-access sub-picture:

It may be required that the random-access sub-picture is constrained sothat prediction of any sub-picture at or after the random-accesssub-picture in output order does not depend on any reference sub-picture(of the same sub-picture sequence) preceding the random-accesssub-picture in decoding order; this case corresponds to an open GOPrandom-access point.

It may be required that the random-access sub-picture is constrained sothat prediction of any sub-picture at or after the random-accesssub-picture in decoding order does not depend on any referencesub-picture (of the same sub-picture sequence) preceding therandom-access sub-picture in decoding order; this case corresponds to aclosed GOP random-access point.

Since random-access sub-picture may be predicted from other sub-picturesequence(s), random-access sub-pictures are more compact than similarrandom-access sub-pictures realized with intra-coded pictures.

Stream access points (which may also or alternatively be referred to assub-picture sequence access point) for sub-picture sequences may bedefined as a position in a sub-picture sequence (or alike) that enablesplayback of the sub-picture sequence to be started using only theinformation from that position onwards assuming that the referencedsub-picture sequences have already been decoded earlier. Stream accesspoints of sub-picture sequences may coincide or be equivalent withrandom-access sub-pictures.

According to an embodiment, At the start of the decoding of a bitstream,the decoding of all sub-picture sequences is marked as uninitialized inthe decoding process. When a sub-picture is coded as a random-accesssub-picture (e.g. like an IRAP picture in HEVC) and prediction acrosssub-picture sequences is not enabled, the decoding of the correspondingsub-picture sequence is marked as initialized. When a currentsub-picture is coded as a random-access sub-picture (e.g. like an IRAPpicture in predicted layers in multilayer HEVC) and decoding of allsub-picture sequences used as reference for prediction is marked asinitialized, the decoding of the sub-picture sequence of the currentsub-picture is marked as initialized. When no sub-picture for asub-picture sequence of an identifier is not present for a time instance(e.g. for an access unit), the decoding of the corresponding sub-picturesequence is marked as uninitialized in the decoding process. When acurrent sub-picture is not a random-access sub-picture and the decodingof the sub-picture sequence of the current sub-picture is not marked asinitialized, the decoding of the current sub-picture may be omitted.Areas that correspond to omitted sub-pictures (e.g. on the basis ofpicture composition data) can be treated like unoccupied areas in theoutput picture compositing process, as described in other embodiments.

As a consequence of the above-described sub-picture-wise decodingstart-up, the present or absence of sub-picture can be dynamicallyselected, e.g. depending on application needs.

Picture composition data may comprise but is not limited to one or moreof the following pieces of information per sub-picture:

-   -   The top, left, bottom and right coordinates of an effective area        within a sub-picture. Samples outside the effective area are not        used in the output picture compositing process. One example of        taking advantage of indicating an effective area is to exclude        guard bands from the output picture compositing process.    -   The top, left, bottom and right coordinates of a composition        area within the output picture. One composition area is        indicated per one effective area of a sub-picture. The effective        area of a sub-picture is mapped onto the composition area. When        the composition area has different dimensions than the effective        area, the effective picture area is rescaled or resampled to        match the effective area    -   Rotation, e.g. by 0, 90, 180 or 270 degrees, for mapping the        effective area on the composition area.    -   Mirroring, e.g. vertically or horizontally, for mapping the        effective area on the composition area.

It is appreciated that other choices for syntax elements than thosepresented above may be equivalently used. For example, coordinates anddimensions of an effective area and/or a composition area may beindicated by the coordinates of the top-left corner of the area, thewidth of the area, and the height of the area. It needs to be understoodthat the units for indicating the coordinates or extents may be inferredor indicated in or along the bitstream and/or decoded from or along thebitstream. For example, coordinates and/or extents may be indicated asinteger multiples of coding tree units.

According to an embodiment, a z-order or an overlaying order may beindicated by the encoder or another entity as part of picturecomposition data in or along the bitstream. According to an embodiment,a z-order or an overlaying order may be inferred for example to be anascending sub-picture identifier or the same as the decoding order ofthe sub-pictures of the same output time or the same output order.

Picture composition data may be associated with a sub-picture sequenceidentifier or alike. Picture composition data may be encoded into and/ordecoded from a video parameter set, a sequence parameter set, or apicture parameter set.

Picture composition data may describe sub-pictures or sub-picturesequences, which are not encoded, requested, transmitted, received,and/or decoded. This enables selecting a subset of possible or availablesub-pictures or sub-picture sequences for encoding, requesting,transmission, receiving, and/or decoding.

A decoder or a player according to an embodiment may include an outputpicture compositing process or alike, which may take as input two ormore reconstructed sub-pictures that represent the same output time orthe same output order. An output picture compositing process may be apart of the decoded picture buffering process or may be connected to thedecoded picture buffering process. An output picture compositing processmay be invoked when a decoder is triggered to output a picture. Suchtriggering may for example happen when an output picture at a correctoutput order can be composed, i.e. when no coded video data precedingthe next reconstructed sub-pictures in output order follows the currentdecoding position within the bitstream. Another example of suchtriggering is when an indicated buffering time has elapsed.

In the output picture compositing process, picture composition data isapplied to locate said two or more reconstructed sub-pictures on thesame coordinates or onto the same output picture area. According to anembodiment, the output picture area that is unoccupied is set to adetermined value, which may be separately derived per each colorcomponent. The determined value may be a default value (e.g. pre-definedin a coding standard), an arbitrary value determined by the outputpicture compositing process, or a value indicated by an encoder in oralong the bitstream and/or decoded from or along the bitstream.Correspondingly, the output picture area may be initialized to thedetermined value prior to locating said two or more reconstructedsub-pictures onto it.

According to an embodiment, a decoder indicates unoccupied areastogether with the output picture. The output interface of the decoder orthe output picture compositing process may comprise an output pictureand information indicative of the unoccupied areas.

According to an embodiment, the output picture of the output picturecompositing process is formed by locating the possibly resampled samplearrays of the two or more reconstructed sub-pictures in the z-order ontothe output picture in such a manner that the sample array later in thez-order covers or replaces the sample values in collocated positions ofthe sample arrays earlier in the z-order.

According to an embodiment, the output picture compositing processcomprises aligning the decoded representations of said two or morereconstructed sub-pictures. For example, if one sub-picture isrepresented by the YUV 4:2:0 chroma format and the other one, later inthe z-order, is represented by the YUV 4:4:4 chroma format, the firstone may be upsampled to YUV 4:4:4 as part of the process. Likewise, ifone picture is represented by a first color gamut or format, such aITU-R BT.709, and another one, later in the z-order, is represented by asecond color gamut or format, such as ITU-R BT.2020, the first one maybe converted to the second color gamut or format as part of the process.

In addition, the output picture compositing process may include one ormore conversions from a color representation format to another (or,equivalently, from one set of primary colors to another set of primarycolors). The destination color representation format may be selected forexample based on the display in use. For example, the output picturecompositing process may include a conversion from YUV to RGB.

Eventually, when all of said two or more reconstructed sub-pictures areprocessed a described above, the resulting output picture may form thepicture to be displayed or to be used in the displaying process e.g. forgenerating content for the viewport.

It is appreciated that the output picture compositing process mayadditionally contain other steps than those described above and may lacksome steps from those described above. Alternatively, or additionally,the described steps of the output picture compositing process may beperformed in another order than that described above.

The spatial correspondence between a current sub-picture and thereference sub-picture (from a different sub-picture sequence) may beindicated by the encoder and/or decoded by the decoder using spatialrelationship information described in the following:

According to an embodiment, in the absence of spatial relationshipinformation, it may be inferred that the current sub-picture and thereference sub-picture are collocated.

According to an embodiment, the spatial relationship informationindicates the location of the top-left sample of the current sub-picturein the reference sub-picture. It is noted that the top-left sample ofthe current sub-picture may be indicated to correspond to a locationoutside the reference sub-picture (e.g. have negative horizontal and/orvertical coordinates). Likewise, bottom and/or right-side samples of thecurrent sub-picture may be located outside the reference sub-picture.When the current sub-picture references samples or decoded variablevalues (e.g. motion vectors) that are outside the reference sub-picture,they may be considered to be unavailable for prediction.

According to an embodiment, the spatial relationship informationindicates the location of an indicated or inferred sample location ofthe reference sub-picture (for example the top-left sample location ofthe reference sub-picture) in the current sub-picture. It is noted thatthe indicated or inferred sample location of the reference sub-picturemay be indicated to correspond to a location outside the currentsub-picture (e.g. have negative horizontal and/or vertical coordinates).Likewise, some sample locations, e.g. bottom and/or right-side samples,of the reference sub-picture may be located outside the currentsub-picture. When the current sub-picture references samples or decodedvariable values (e.g. motion vectors) that are outside the referencesub-picture, they may be considered to be unavailable for prediction. Itis noted that sub-pictures of different sub-picture sequences may usethe same reference sub-picture as a reference for prediction using thesame or different spatial relationship information. It is also notedthat the indicated or inferred sample location of the referencesub-picture may be indicated to correspond to a fractional location inthe current sub-picture. In this case, reference sub-picture isgenerated by resampling the current sub-picture.

According to an embodiment, the spatial relationship informationindicates the location of the four corner (e.g. top-left, top-right,bottom-left, bottom-right) samples of the current sub-picture in thereference sub-picture. The corresponding location of each sample of thecurrent picture in the reference subpicture may be calculated using afor example bilinear interpolation.

According to an embodiment, it may be inferred by an encoder and/or adecoder or it may be indicated in or along the bitstream by an encoderand/or it may be decoded from or along the bitstream by a decoder thatspatial correspondence is applied in a wrap-around manner horizontallyand/or vertically. An encoder may indicate such wrap-aroundcorrespondence for example when a sub-picture covers an entire360-degree picture and sub-picture sequences of both views are presentin the bitstream. When wrap-around correspondence is in use and a samplelocation outside a boundary of the reference sub-picture would bereferenced in the decoding process, the referenced sample location maybe wrapped around horizontally or vertically (depending which boundaryis crossed) to the other side of the reference sub-picture.

According to an embodiment, an encoder generates and/or a decoderdecodes more than one instance of spatial relationship information toindicate spatial correspondence between a current sub-picture and morethan one reference sub-pictures.

According to an embodiment, an encoder generates and/or a decoderdecodes more than one instance of spatial relationship information toindicate more than one spatial correspondence between a currentsub-picture and the reference sub-picture (from a different sub-picturesequence). Any embodiment above may be used for describing an instanceof spatial relationship information. For each instance of spatialrelationship information, a separate reference picture index in one ormore reference picture lists may be generated in an encoder and/or in adecoder. For example, reference picture list initialization may compriseincluding the number of times a reference sub-picture is included in aninitial reference picture list can be equal to the number of instance ofthe spatial relationship information concerning the referencesub-picture. An encoder may indicate the use the reference sub-pictureassociated with a particular instance of spatial relationshipinformation using the corresponding reference index when indicating areference for inter prediction. Respectively, a decoder may decode thereference index to be used as a reference for inter prediction, concludethe particular instance of spatial relationship informationcorresponding to that reference index, and use the associated referencesub-picture with the concluded particular instance of spatialrelationship information as a reference for inter prediction. Thepresent embodiment may be used e.g. when the reference sub-picture isbigger than the current sub-picture, and object motions in differentborders of the current sub-picture are in different directions(spatially when they are toward outside the sub-picture). Thus, for eachborder a different reference with different instance of spatialrelationship information may be helpful.

According to an embodiment, unavailable samples may be copied from theother side of the sub-picture. This may be useful especially in360-degree videos.

According to an embodiment, an access unit contains sub-pictures of thesame time instance, and coded video data for a single access unit iscontiguous in decoding order and is not interleaved, in decoding order,with any coded data of any other access unit. In another embodiment,sub-pictures of the same time instance need not be contiguous indecoding order.

According to another embodiment, sub-pictures of the same time instanceneed not be contiguous in decoding order. This embodiment may be usedfor example for retroactive decoding of some sub-layers of sub-picturesequences that were earlier decoded at a reduced picture rate but arenow to be decoded at a higher picture rate. Such operation for multiplepicture rates or different number of sub-layers for sub-picture sequenceis described in another embodiment further below.

According to an embodiment, all sub-picture sequences have sub-picturesof the same time instances present. In other words, when one sub-picturesequence has a sub-picture for any particular time instance, all othersub-pictures also have a sub-picture for that time instance. An encodermay indicate in or along the bitstream, e.g. in a VPS (Video ProcessingSystem), and/or a decoder may decode from or along the bitstream if allsub-picture sequences have sub-pictures of the same time instancespresent. According to another embodiment, sub-picture sequences may havesub-pictures present whose time instances are at least partiallydiffering. For example, sub-picture sequences may have different picturerates from each other.

According to an embodiment, all sub-picture sequences may have the sameprediction structure, have sub-pictures of the same time instancespresent and use sub-pictures of the same time instances as reference. Anencoder may indicate in or along the bitstream, e.g. in a VPS, and/or adecoder may decode from or along the bitstream if all sub-picturesequences have the same prediction structure.

According to an embodiment, reference picture marking for a sub-picturesequence is independent of other sub-picture sequences. This may berealized e.g. by using separate SPSs (Sequence Parameter Set) and PPSs(Picture Parameter Set) for different sub-picture sequences.

According to another embodiment, reference picture marking for allsub-picture sequences is synchronized. In other words, all sub-picturesof a single time instance are either all marked as “used for reference”or all marked as “unused for reference”. In an embodiment, syntaxstructures affecting reference picture marking are included in and/orreferenced by sub-picture-specific data units, such as VCL NAL units forsub-pictures. In another embodiment, syntax structures affectingreference picture marking are included in and/or reference bypicture-specific data units, such as a picture header, a headerparameter set, or alike.

According to an embodiment, bitstream or CVS (Coded Video Sequence)properties are indicated in two levels, namely per sub-picture sequenceand collectively to all sub-picture sequences (i.e. all coded videodata). The properties may comprise but are not limited to a codingprofile, a level, HRD parameters (e.g. CPB and/or DPB size), constraintsthat have been applied in encoding. Properties per sub-picture sequencemay be indicated in a syntax structure that applies to the sub-picturesequence. Properties applying collectively to all sub-picture sequencesmay be indicated in a syntax structure applying to the entire CVS orbitstream.

According to an embodiment, two levels of bitstream or CVS (Coded VideoSequence) properties are decoded, namely per sub-picture sequence andcollectively to all sub-picture sequences (i.e. all coded video data).The properties may comprise but are not limited to a coding profile, alevel, HRD parameters (e.g. CPB and/or DPB size), constraints that havebeen applied in encoding. A decoder or a client may determine from theproperties indicated for all sub-picture sequences collectively whetherit can process the entire bitstream. A decoder or a client may determinefrom the properties indicated for individual sub-picture sequences whichsub-picture sequences it is able to process.

According to an embodiment, it is indicated in or along the bitstream,e.g. in SPS, and/or decoded from or along the bitstream:

-   -   if motion vectors do not cause references to sample locations        over sub-picture boundaries, or    -   if motion vectors may cause references to sample locations over        sub-picture boundaries.

According to an embodiment, the properties per sub-picture sequenceand/or the properties applying collectively to all sub-picture sequencesare informative of the sample count and/or sample rate limit applicablein the sub-picture sequence and/or all sub-picture sequences wherein:

-   -   the sample locations over sub-picture boundaries are excluded        provided that motion vectors do not cause references to sample        locations over sub-picture boundaries, and    -   the sample locations over sub-picture boundaries that may be        referenced are included provided that motion vectors may cause        references to sample locations over sub-picture boundaries.

According to an embodiment, parameters related to a sub-picture and/orsub-picture sequence are encoded into and/or decoded from a pictureparameter set. Sub-pictures of the same picture, access unit, or timeinstance are allowed but not necessarily required to refer to differentpicture parameter sets.

According to an embodiment, information indicative of sub-picture widthand height are indicated in and/or decoded from a picture parameter set.For example, the sub-picture width and height may be indicated and/ordecoded in units of CTUs. The picture parameter set syntax structure maycomprise the following syntax elements:

pic_parameter_set_rbsp( ) { Descriptor  ... u(1) multiple_subpics_enabled_flag u(1)  if( multiple_subpics_enabled_flag ){   subpic_width_in_ctus_minus1 ue(v)   subpic_height_in_ctus_minus1ue(v)  }  ...

The semantics of the syntax elements may be specified as follows:multiple_subpics_enabledflag equal to 0 specifies that a picturecontains exactly one sub-picture and that all VCL NAL units of an accessunit reference the same active PPS. multiple_subpics_enabledflag equalto 1 specifies that a picture may contain more than one sub-picture andeach sub-picture may reference a different active PPS.subpic_width_in_ctus_minus1 plus 1, when present, specifies the width ofthe sub-picture for which this PPS is the active PPS.subpic_height_in_ctus_minus1 plus 1, when present, specifies the heightof the sub-picture for which this PPS is the active PPS. Whensubpic_width_in_ctus_minus1 and subpic_height_in_ctus_minus1 are presentin a PPS that is activated, variables related to picture dimensions maybe derived based on them and may override the respective variablesderived from the syntax elements of SPS.

It needs to be understood that information indicative of sub-picturewidth and height may be realized differently than what is describedabove in details. In a first example, PPS may contain the tile rowheights and tile column widths of all tile rows and tile columns,respectively, and the sub-picture height and width are the sums of allthe tile column heights and widths, respectively. In a second example,sub-picture width and height may be indicated and/or decoded in units ofminimum coding block size. This option would enable finer granularityfor the last tile column and the last tile row.

According to an embodiment, parameters related to a sub-picture sequenceare encoded into and/or decoded from a sub-picture parameter set. Asingle sub-picture parameter set may be used by sub-picture of more thanone sub-picture sequence but is not required to be used by allsub-picture sequences. A sub-picture parameter set may for examplecomprise information similar to that included in a picture parameter setfor conventional video coding, such as HEVC. For example, a sub-pictureparameter set may indicate which coding tools are enabled in coded imagesegments of the sub-pictures referring to the sub-picture parameter set.Sub-pictures of the same time instance may refer to differentsub-picture parameter sets. A picture parameter set may indicateparameters that applies collectively to more than one sub-picturesequences or across sub-pictures, such as spatial relationshipinformation.

According to an embodiment, a sub-picture sequence is encapsulated as atrack in a container file. A container file may contain multiple tracksof sub-picture sequences. Prediction of a sub-picture sequence fromanother sub-picture sequence may be indicated through file formatmetadata, such as a track reference.

According to an embodiment, selected sub-layer(s) of a sub-picturesequence are encapsulated as a track. For example, sub-layer 0 may beencapsulated as a track. Sub-layer-wise encapsulation may enablerequesting, transmission, reception, and/or decoding of a subset ofsub-layers for tracks that are not needed for rendering.

According to an embodiment, one or more collector tracks are generated.A collector track indicates which sub-picture tracks are suitable to beconsumed together. Sub-picture tracks may be grouped into groupscontaining alternatives to be consumed. For example, one sub-picturetrack of per a group may be intended to be consumed for any time range.Collector tracks may reference either or both of sub-picture tracksand/or groups of sub-picture tracks. Collector tracks might not containinstructions for modifying coded video content, such as VCL NAL units.In an embodiment, the generation of a collector track comprises but isnot limited to authoring and storing one or more of the following piecesof information:

-   -   Parameter sets and/or headers that apply when the collector        track is resolved. For example, sequence parameter set(s),        picture parameter set(s), header parameter set(s), and/or        picture header(s) may be generated. For example, a collector        track may contain the picture header that applies for picture        when its sub-pictures may originate from both random-access        pictures and non-random-access pictures or be of both        random-access sub-picture type and non-random-access sub-picture        type.    -   Picture composition data.    -   Bitstream or CVS (Coded Video Sequence) properties applying        collectively to the sub-picture sequences resolved from the        collector track. The properties may comprise but are not limited        to a coding profile, a level, HRD parameters (e.g. CPB and/or        DPB size), constraints that have been applied in encoding.

In an embodiment, a sample in a collector track pertains to multiplesamples of associated sub-picture tracks. For example, by selecting thesample duration of a collector track to pertain to multiple samples ofassociated sub-picture tracks, it can be indicated that the sameparameter sets and/or header, and/or the same picture composition dataapplies to a period of time in the associated sub-picture tracks.

According to an embodiment, a client or alike identifies one or morecollector tracks being available, wherein

-   -   a collector track indicates which sub-picture tracks are        suitable to be consumed together, and    -   collector tracks may reference either or both of sub-picture        tracks and/or groups of sub-picture tracks (e.g. a group        containing alternative sub-picture tracks out of which one is        intended to be selected for consumption for any time range), and    -   collector tracks might not contain instructions for modifying        coded video content, such as VCL NAL units.

In an embodiment, the client or alike parses from one or more collectortracks or information accompanying the one or more collector tracks oneor more of the following pieces of information:

-   -   Parameter sets and/or headers that apply when the collector        track is resolved.    -   Picture composition data.    -   Bitstream or CVS (Coded Video Sequence) properties applying        collectively to the sub-picture sequences resolved from the        collector track. The properties may comprise but are not limited        to a coding profile, a level, HRD parameters (e.g. CPB and/or        DPB size), constraints that have been applied in encoding.

In an embodiment, the client or alike selects a collector track from theone or more collector tracks to be consumed. The selection may be basedon but is not limited to the above-listed pieces of information.

In an embodiment, the client or alike resolves the collector track togenerate a bitstream for decoding. At least a subset of the informationincluded in or accompanying the collector track may be included in thebitstream for decoding. The bitstream may be generated piece-wise, e.g.access unit by access unit. The bitstream may then be decoded, and thedecoding may be performed piece-wise, e.g. access unit by access unit.

It needs to be understood that the embodiments described in relation tocollector track equally apply to tracks called differently butessentially with the same nature. For example, instead of a collectortrack, the term parameter set track could be used, since the informationincluded in the track could be considered parameter or parameter setsrather than VCL data.

According to an embodiment, sub-picture sequence(s) are decapsulatedfrom selected tracks of a container file. Samples of the selected tracksmay be arranged into a decoding order that complies with a coding formator a coding standard, and then passed to a decoder. For example, when asecond sub-picture is predicted from a first sub-picture, the firstsub-picture is arranged prior to the second sub-picture in decodingorder.

According to an embodiment, each track containing a sub-picture sequenceforms a Representation in the MPD. An Adaptation Set is generated pereach group of sub-picture sequence tracks that is collocated and alsootherwise share the same properties such that switching between theRepresentations of an Adaptation Set is possible e.g. with a singledecoder instance.

According to an embodiment, prediction of a sub-picture sequence fromanother sub-picture sequence may be indicated through streaming manifestmetadata, such as a @dependencyId in DASH MPD.

According to an embodiment, an indication of a group of Adaptation Setsis generated into an MPD, wherein the Adaptation Sets containRepresentations that carry sub-picture sequences, and the sub-picturesequences are such that can be decoded with a single decoder. Accordingto an embodiment, a client infers from the indicated group that anycombination of selected dependent Representations whose complementaryRepresentations are also in the combination and any selected independentor complementary Representations can be decoded.

According to an embodiment, a client selects e.g. based on theabove-mentioned indicated group, estimated throughput, and use caseneeds (see e.g. below embodiments on viewport-dependent streaming) fromwhich Representations (Sub)segments are requested.

According to an embodiment, sub-pictures are encoded onto and/or decodedfrom more than one layer of scalable video coding. In an embodiment, areference picture for inter-layer prediction comprises a picturegenerated by the output picture compositing process. In anotherembodiment, inter-layer prediction is performed from a reconstructedsub-picture of a reference layer to a sub-picture of an enhancementlayer.

According to an embodiment, a sub-picture sequence corresponds to alayer of scalability video coding. Embodiments can be used to realizee.g. quality scalability, region-of-interest scalability, or viewscalability (i.e. multiview or stereoscopic video coding). Thus,multi-layer coding may be replaced by sub-picture-based coding.Sub-picture-based coding may be more advantageous in many use casescompared to scalable video coding. For example, many describedembodiments enable a large number of sub-picture sequences, which may beadvantageous e.g. in point cloud coding or volumetric video coding wheregenerated of patches is dynamically adapted. In contrast, scalable videocoding has conventionally assumed a fixed maximum number of layers (e.g.as determined by the number of bits in nuh_layer_id syntax element inHEVC). Furthermore, many described embodiments enable dynamic selectionof (de)coding order of sub-pictures and reference sub-pictures forprediction, whereas the scalable video coding conventionally has a fixed(de)coding order of layers (within an access unit) and a fixed set ofallowed inter-layer dependencies within a coded video sequence.

Embodiments may be used but are not limited with selecting (forencoding) and/or decoding sub-pictures or sub-picture sequences as anyof the following:

-   -   whole picture of a normal single view 2D video (in this case        each picture has only one sub-picture)    -   partitions of a spatial partitioning of a video; partitions may        correspond to coded image segments    -   partitions of a spatiotemporal partitioning of a video;        spatiotemporal partitions may be selected similarly to MCTSs in        various use cases    -   views of stereoscopic or multiview video as discussed above    -   layers of a multi-layer (scalable) video as discussed above    -   surfaces of a projection structure of 360-degree projection,        such as faces of a multi-face 360-degree projection (e.g.        cubemap)    -   packed regions as indicated by region-wise packing information    -   spatially contiguous single-resolution parts of a        multi-resolution packing of a video (for example        multi-resolution ERP or CMP)    -   parts or patches of a point cloud projected onto a surface        (texture or depth); a sub-picture sequence may comprise        respective patches in subsequent time instances    -   one or more regions of interest coded as sub-pictures at a        higher resolution than other areas    -   aggregation of coded videos from different sources (e.g.        different cameras) as sub-picture sequences within one        bitstream; this may be used for multi-point video conferencing,        for example

In the following some example embodiments using sub-picture-based(de)coding are discussed, e.g. from a point of view ofViewport-dependent 360-degree video streaming; coding of scalable,multiview and stereoscopic video; coding of multi-face content withoverlapping; coding of point cloud content.

Viewport-Dependent 360-Degree Video Streaming:

According to an embodiment, a coded sub-picture sequence may beencapsulated in a track of a container file, the track may bepartitioned into Segments and/or Subsegments, and a Representation maybe created in a streaming manifest (e.g. MPEG-DASH MPD) to make the(Sub)segments available through requests and to announce properties ofthe coded sub-picture sequence. The process of the previous sentence maybe performed for each of the coded sub-picture sequences.

According to an embodiment, a client apparatus may be configured toparse from a manifest information of a plurality of Representations andto parse from the manifest a spherical region for each of the pluralityof Representations. The client apparatus may also parse from themanifest values indicative of the quality of the spherical regionsand/or resolution information for the spherical regions or their 2Dprojections. The client apparatus determines which Representations aresuitable for its use. For example, the client apparatus may includemeans to detect head orientation when using a head-mounted display andselect a Representation with a higher quality to cover the viewport thanin Representations selected for other regions. As a consequence of theselection, the client apparatus may request (Sub)Segments of theselected Representations.

According to an embodiment, the same content is coded at multipleresolutions and/or bitrates using sub-picture sequences. For example,different parts of a 360-degree content may be projected to differentsurfaces, and the projected faces may be downsampled to differentresolutions. For example, the faces that are not in the current viewportmay be downsampled to lower resolution. Each face may be coded as asub-picture.

According to an embodiment, the same content is coded at differentrandom-access intervals using sub-picture sequences.

According to an embodiment, a change in viewing orientation causes apartly different selection of Representations to be requested thanearlier. The new Representations to be requested may be requested ortheir decoding may be started from the next random-access positionwithin the sub-picture sequences carried in the Representations. Whensub-picture sequences are made available at several random-accessintervals, Representations having more frequent random-access positionsmay be requested as a response to a viewing orientation change until anext (Sub)segment with random-access position and of similar quality isavailable from respective Representations having less frequentrandom-access positions. Representations that need not be changed as aresponse to a viewing orientation change need not have random-accesspositions. As discussed already earlier, sub-pictures may be allowed tohave different sub-picture types or NAL unit types. For example, asub-picture of a particular access unit or time instance may be of arandom-access type while another sub-picture of the same particularaccess unit or time instance may be of a non-random-access type. Thus,sub-pictures of bitstreams having different random-access intervals canbe combined.

According to an embodiment, shared coded sub-pictures are coded amongthe sub-picture sequences. Shared coded sub-pictures are identical inrespective sub-picture sequences of different bitrates, both in theircoded form (e.g. VCL NAL units are identical) and in their reconstructedform (the reconstructed sub-pictures are identical).

According to an embodiment, shared coded sub-pictures are coded in theirown sub-picture sequence.

In an embodiment, shared coded sub-pictures are indicated in or alongthe bitstream (e.g. by an encoder) not to be output by a decoder, and/orare decoded from or along the bitstream not to be output by a decoder.

Shared coded sub-pictures may be made available as separateRepresentation(s) or may be included in “normal” Representations. Whenshared coded sub-pictures are made available as separateRepresentation(s), the client apparatus may constantly request andreceive those Representation(s).

The above-described selection process(es) depending on viewingorientation apply when shared coded sub-pictures are in use with adifference that in addition to capability of switching betweenRepresentation(s) at random-access positions, also the shared codedsub-pictures offer that capability.

FIG. 12 illustrates an example of using shared coded sub-picture formulti-resolution viewport-dependent 360-degree video streaming.

The cubemap content is resampled before encoding to three resolutions(A, B, C). It needs to be understood that cubemap projection is meant asone possible choice for which the embodiment can be realized, butgenerally other projection formats can likewise be used. In thisexample, the content at each resolution is split into sub-pictures ofequal dimensions, although generally different dimensions could likewisebe used.

In this example, shared coded sub-pictures (indicated with rectanglecontaining the S character) are coded periodically, but it needs to beunderstood that different strategies of coding shared coded sub-picturescould additionally or alternatively be used. For example, scene cutscould be detected, IRAP pictures or alike could be coded for detectedscene cuts, and periods for coding shared coded sub-pictures could bereset at IRAP pictures or alike.

In this example, shared coded sub-pictures are coded with “normal”sub-pictures (indicated with striped rectangles in the figure) in thesame sub-picture sequences. The shared coded sub-picture and therespective “normal” sub-picture represent conceptually different unitsin the bitstream, e.g. with different decoding times, with differentpicture order counts, and/or belonging to different access units. Inanother embodiment, a sequence of shared coded sub-pictures could formits own sub-picture sequence from which the respective “normal”sub-picture sequence could be predicted. If prediction from onesub-picture sequence (the shared coded sub-picture sequence in thisexample) to another is enabled, shared coded sub-picture and therespective “normal” sub-picture from the same input picture can belongto the time instance (e.g. be a part of the same access unit).

In this example, shared coded sub-pictures have the same dimensions asthe respective “normal” sub-pictures. In another embodiment, sharedcoded sub-pictures could have different dimensions. For example, ashared coded sub-picture could cover an entire cube face or all cubefaces of a cubemap, and spatial relationship information could be usedto indicate how “normal” sub-pictures spatially relate to shared codedsub-pictures. An advantage of this approach is to enable predictionacross a larger area within and between shared coded sub-pictures whencompared to “normal” sub-pictures.

The client apparatus can select, request, receive, and decode:

-   -   shared coded sub-pictures A00 . . . A95, B00 . . . B23, and C0 .        . . C5 of all desired resolutions    -   any subset of sub-pictures of other coded pictures of any        selected bitrate (on sub-picture basis)

According to an embodiment, a sub-picture sequence representing360-degree video is coded at a “base” fidelity or quality, and hence thesub-picture sequence may be referred to as the base sub-picturesequence. This sub-picture sequence may be considered to carry sharedcoded sub-pictures. Additionally, one or more sub-picture sequencesrepresenting spatiotemporal subsets of the 360-degree video are coded ata fidelity or quality that is higher than the base fidelity or quality.For example, the projected picture area or the packed picture area maybe partitioned into rectangles, and each sequence of rectangles may becoded as a “region-of-interest” sub-picture sequence. An ROI sub-picturesequence may be predicted from base sub-picture sequence and fromreference sub-pictures of the same ROI sub-picture sequence. Spatialrelationship information is used to indicate the spatial correspondenceof the ROI sub-picture sequence in relation to the base sub-picturesequence. Several ROI sub-picture sequences of the same spatial positioncan be coded, e.g. for different bitrate or resolution.

In an embodiment, the base sub-picture sequence has the same picturerate as the ROI sub-picture sequences and thus ROI sub-picture sequencescan be selected to cover a subset of the 360-degree video, e.g. theviewport with a selected margin for viewing orientation changes. Inanother embodiment, the base sub-picture sequence has a lower picturerate than the ROI sub-picture sequences and thus ROI sub-picturesequences can be selected to cover the entire 360-degree video. Theviewport with a selected margin for viewing orientation changes can beselected to be requested, transmitted, received, and/or decoded from ROIsub-picture sequences with higher quality than the ROI sub-picturesequences covering the remaining of the sphere coverage.

In some solutions, the base sub-picture sequence is always received anddecoded. Additionally, ROI sub-picture sequences selected on the basisof the current viewing orientation are received and decoded.

Random-access sub-pictures for the ROI sub-picture sequences may bepredicted from the base sub-picture sequence. Since the base sub-picturesequence is consistently received and decoded, random-access sub-pictureinterval (i.e., the SAP interval) for the base sub-picture sequence canbe longer than that for ROI sub-picture sequences. The encoding methodfacilitates switching to requesting and/or receiving and/or decodinganother ROI sub-picture sequence at a SAP position of that ROIsub-picture sequence. No intra-coded sub-picture at that ROI sub-picturesequence is required to start the decoding of that ROI sub-picturesequence, and consequently compression efficiency is improved comparedto a conventional approach.

The benefits of using the invention in viewport-dependent 360-degreestreaming include the following:

-   -   Extractor track(s) or tile base track(s) or alike are not needed        for merging of MCTSs in viewport-dependent streaming, since        sub-picture sequences can be decoded without modifications        regardless of which set of sub-picture sequences are received or        passed to decoding. This reduces content authoring burden and        simplifies client operation.    -   No changes in VCL NAL units are needed in late-binding-based        viewport-dependent streaming, since sub-picture sequences can be        decoded without modifications regardless of which set of        sub-picture sequences are received or passed to decoding. This        reduces client implementation complexity.    -   Picture size in terms of pixels needs not be constant. This        advantage becomes apparent when shared coded sub-pictures are        used, where a greater number of pixels may be decoded in the        time instances including shared coded sub-pictures than other        time instances.    -   Flexibility in choosing the number of sub-pictures according to        the viewport size and head motion margin. In some prior-art        methods, the number of sub-picture tracks was pre-defined when        creating an extractor track for merging of the content of the        sub-picture tracks into a single bitstream.    -   Flexibility in choosing the number of sub-pictures according to        the decoding capacity and/or availability of received data. The        number of decoded sub-pictures can be dynamically chosen        depending on available decoding capacity, e.g. on a        multi-process or multi-tasking system with resource sharing. The        coded data for a particular time instance can be passed to        decoding even if some requested sub-pictures for it have not        been received. Thus, delivery delays concerning only a subset of        sub-picture sequences do not stall the decoding and playback of        other sub-picture sequences.    -   Switching between bitrates and received sub-pictures can take        place at any shared coded sub-picture and/or random-access        sub-picture. Several versions of the content can be encoded at        different intervals of shared coded sub-pictures and/or        random-access sub-pictures. In the decoded bitstreams shared        coded sub-pictures and/or random-access sub-pictures need not be        aligned in all sub-picture sequences, thus better        rate-distortion efficiency can be achieved when switching and/or        random-access property is only in those sub-picture sequences        where it is needed.

As discussed above, depending on the use case, the term “sub-picture”can refer to various use cases and/or types of projections. Examplesrelating to the coding of sub-pictures in the context of few of theseuse cases are discussed next.

Coding of Multi-Face Content with Overlapping

According to an embodiment, different parts of a 360-degree content maybe projected to different surfaces, and the projected faces may haveoverlapped content. In another embodiment a content may be divided toseveral regions (e.g. tiles) with overlapped content. Each face orregion may be coded as a sub-picture. Each sub-picture may use a part ofthe other sub-picture as a reference frame as is shown in FIGS. 13 and14 for two examples, where the non-overlapped contents have been shownin white box, the overlapped areas have been shown in gray color, andthe corresponding parts in sub-pictures have been indicated by a dashedrectangle. Spatial relationship information could be used to indicatehow a sub-picture spatially relate to other sub-pictures.

Coding of Point Cloud Content

According to an embodiment, each part of a point cloud content isprojected to a surface to generate a patch. Each patch may be coded as asub-picture. Different patches may have redundant data. Each sub-picturemay use other sub-picture to compensate this redundancy. In example inFIG. 15 different parts of a point cloud have been projected to surface1 and surface 2 to generate patch 1 and patch 2, respectively. Eachpatch is coded as a sub-picture. In this example, a part of the pointcloud content which is indicated by c, d, e is redundantly projected totwo surfaces, so the corresponding content in redundant in patch 1 andpatch 2. In FIG. 15, that part of the sub-picture 2 which may bepredicted from sub-picture 1 is indicated by dashed box. The collectionof reconstructed sub-pictures may form the output picture.Alternatively, reconstructed sub-pictures may be arranged into a 2Doutput picture.

According to an encoding embodiment, a patch of a second PCC layer iscoded as a second sub-picture and is predicted the reconstructedsub-picture of the respective patch of a first PCC layer. Similarly,according to a decoding embodiment, a second sub-picture is decoded,wherein the second sub-picture represents a patch of a second PCC layer,and wherein the decoding comprises prediction from the reconstructedsub-picture that represents the respective patch of a first PCC layer.

According to an embodiment sub-picture sequences are intentionallyencoded, requested, transmitted, received, and/or decoded at differentpicture rates and/or at different number of sub-layers. This embodimentis applicable e.g. when only a part of the content is needed forrendering at a particular time. For example, in 360-degree video onlythe viewport is needed for rendering at a particular time, and in pointcloud coding and volumetric video the part needed for rendering maydepend on the viewing position and viewing orientation. The picture rateand/or the number of sub-layers for sub-picture sequences that areneeded for rendering may be selected (in encoding, requesting,transmitting, receiving, and/or decoding) to be higher than for thosesub-picture sequences that are not needed for rendering and/or notlikely to be needed for rendering soon (e.g. for responding to a viewingorientation change). With the described arrangement, the needed decodingcapacity and power consumption may be reduced. Alternatively, deliveryand/or decoding speedup may be achieved e.g. for faster than real-timeplayback. When decoding of a sub-picture sequence at a greater number ofsub-layers is desired (e.g. for responding to a viewing orientationchange), sub-layer access pictures, such as TSA and/or STSA pictures ofHEVC, may be used to restart encoding, requesting, transmitting,receiving, and/or decoding sub-layers.

According to an embodiment, a TSA sub-picture or alike can be encodedinto the lowest sub-layer of a sub-picture sequence not predicted fromother sub-picture sequences. This TSA sub-picture indicates that allsub-layers of this sub-picture sequence can be predicted starting fromthis TSA picture. According to an embodiment, a TSA sub-picture or alikeis decoded from the lowest sub-layer of a sub-picture sequence notpredicted from other sub-picture sequences. In an embodiment, it isconcluded that requesting, transmission, reception, and/or decoding ofany sub-layers above the lowest sub-layer can start starting from thisTSA sub-picture, and consequently such requesting, transmission,reception, and/or decoding takes place.

The present embodiments provide also other advantages in addition tothose already discussed above. For example, loop filtering acrosssub-picture boundaries is disabled. Thus, a very low delay operation maybe achieved by processing the decoded sub-pictures output by thedecoding process immediately (e.g., through color space conversion fromYUV to RGB, etc.). This enables pipelining of the processes involved inplaying (e.g. receiving VCL NAL units, decoding VCL NAL units,post-processing decoded sub-pictures). Similar benefit may also beachieved in the encoding end. Filtering over borders of non-contiguousimage content, such as filtering across disjoint projection surfaces,may cause visible artefacts. By disabling loop filter visible artifactsat sub-picture borders are reduced and subjective quality is improved.

As a further advantage, when sub-picture sequences are independent fromeach other, sub-pictures can be decoded in any order and sub-pictures ofdifferent pictures can be decoded in parallel. This provides moreflexibility for load balancing between processing cores.

As a further advantage, a sequence of patches of point cloud orvolumetric video can be indicated to be of the same or similar source(e.g. the same projection surface) by indicating them to below to thesame sub-picture sequence. Consequently, patches of the same source canbe inter-predicted from each other. Conventionally, patches of pointcloud or volumetric video have been packed onto a 2D picture and patchesof the same or similar source should have been positioned spatially tothe same location on the 2D picture. However, as the number and size ofpatches may vary, such temporal alignment of corresponding patches mightnot be straightforward.

As a further advantage, only high-level syntax structures, such as thepicture composition data, need to be rewritten for extracting a subsetof sub-pictures of a bitstream or merging sub-pictures of differentbitstreams. Coded data of sub-pictures need not be changed. This makesviewport-dependent 360-degree streaming applications easier toimplement. Likewise, for viewing position and orientation dependentvolumetric video streaming applications.

In addition, the number or pixel count of sub-pictures per picture doesnot have the stay constant. This makes 360-degree and 6DoF streamingapplications that are based on “late binding” and adaptation based onviewing orientation and/viewing position easier to implement. The numberof received sub-pictures can be chosen based on the viewport size and/orthe decoding capacity. If a sub-picture is not received in time, thepicture can be decoded without it.

By allowing motion vectors to reference data outside sub-pictureboundaries compression efficiency can be improved compared tomotion-constrained tile sets.

By allowing prediction from one sub-picture sequence to another,compression efficiency can be improved e.g. for:

-   -   Inter-view prediction, when the first sub-picture sequence        represents a first view, and the second sub-picture sequence        represents a second view.    -   Prediction from a “shared sub-picture sequence” can be enabled        for adaptive 360 and 6DoF streaming.

Since the picture width and height is may be allowed to be not alignedwith CTU boundary (or alike) and since sub-picture decoding operates asconventional picture decoding, flexibility in defining sub-picture sizesis achieved. For example, sub-picture sizes used for 360-degree videoneed not be multiples of CTU width and height. This decoding capacity interms of pixels/second can be utilized more flexibly.

In multifaced projection like CMP, where there is discontinuity in faceboundaries, sub-picture coding can improve intra coding in the faceboundaries by not using the neighboring face pixels for prediction.

In the following, the reference sub-picture manipulation process will bedescribed in more detail, in accordance with an embodiment.

An encoder selects which of the sub-pictures could be used as a sourceof a manipulated reference sub-picture. The encoder generates the set ofmanipulated reference sub-pictures from the set of decoded sub-picturesusing the identified reference sub-picture manipulation process; andincludes at least one of the manipulated reference sub-pictures in areference picture list for prediction.

The encoder includes in or along the bitstream an identification of thereference sub-picture manipulation process and may also include in thebitstream information indicative of or infers a set of decodedsub-pictures to be manipulated, and/or a set of manipulated referencesub-pictures to be generated.

A decoder decodes from or along the bitstream the identification of thereference sub-picture manipulation process. The decoder also decodesfrom the bitstream information indicative of or infers a set of decodedsub-pictures to be manipulated, and/or a set of manipulated referencesub-pictures to be generated.

The decoder may also generate the set of manipulated referencesub-pictures from the set of decoded sub-pictures using the identifiedreference sub-picture manipulation process; and include at least one ofthe manipulated reference sub-pictures in a reference picture list forprediction.

In an embodiment, an encoder indicates in or along the bitstream and/ora decoder decodes from or along the bitstream and/or it is inferred byan encoder and/or a decoder that a reference sub-picture manipulationoperation is to be carried out when the reference sub-picture(s) used asinput in the reference sub-picture manipulation become available.

In an embodiment, an encoder encodes into or along the bitstream and/ora decoder decodes from or along the bitstream a control signal if areference sub-picture is to be provided for reference sub-picturemanipulation when it becomes available (e.g., right after it has beendecoded). The control signal may be included for example in a sequenceparameter set, a picture parameter set, a header parameter set, apicture header, a sub-picture delimiter or header, and/or an imagesegment header (e.g. a tile group header). When included in a parameterset, the control signal may apply to each sub-picture referring to theparameter set. The control signal may be specific to a sub-picturesequence (and may be accompanied by a sub-picture sequence identifier)or may apply to all sub-picture sequences that are decoded. Whenincluded in a header, the control signal may apply to the spatiotemporalunit wherein the header is applied. In some cases, the control signal isapplicable in the first header and may be repeated in subsequent headersapplying to the same spatiotemporal units. For example, the controlsignal may be included in an image segment header (e.g. a tile groupheader) of a sub-picture, indicating that the decoded sub-picture isprovided to the reference sub-picture manipulation.

In an embodiment, an encoder indicates in or along the bitstream and/ora decoder decodes from or along the bitstream and/or it is inferred byan encoder and/or a decoder that a reference sub-picture manipulationoperation is to be carried out when the manipulated referencesub-picture is referenced in encoding and/or decoding or is about to bereference in encoding and/or decoding. For example, the referencesub-picture manipulation process may be carried out when the manipulatedreference sub-picture is included in a reference picture list among“active” reference sub-pictures that may be used as reference forprediction in the current sub-picture.

As discussed earlier, in some embodiments:

-   -   Decoded picture buffering is performed on picture basis rather        than on sub-picture basis.    -   An encoder and/or a decoder generates a reference picture from        decoded sub-pictures of the same access unit or time instance        using the picture composition data.    -   The generation of a reference picture is performed identically        or similarly to what is described in other embodiments for        generating output pictures.

An embodiment, in which decoded picture buffering is performed onpicture basis, comprises the following: A reference sub-picture to beused as input to the reference sub-picture manipulation process isgenerated by extracting an area from a reference picture in the decodedpicture buffer. The extraction may be done as a part of the decodedpicture buffering process or a part of the reference sub-picturemanipulation process or be operationally connected to the decodedpicture buffering process and/or the reference sub-picture manipulationprocess. In an embodiment, the area is the area that collocates with thecurrent sub-picture being encoded or decoded. In another embodiment, thearea is provided through spatial relationship information. Thus, thereference sub-picture manipulation process gets reference sub-picture(s)from the decoded picture buffering process similarly to otherembodiments, and the reference sub-picture manipulation process mayoperate similarly to other embodiments.

Identification of the Reference Sub-Picture Manipulation Process andSignalling Accompanying Information

The above-mentioned sub-picture packing may involve indicating packinginformation for sub-picture sequences, sub-pictures, or regions withinsub-pictures that may be used as source for the sub-picture packing. Inan embodiment, the packing information is indicated similarly to butseparately from the picture composition data. In an embodiment, anencoder indicates in or along the bitstream that the picture compositiondata is reused as packing information, and/or likewise a decoder decodesfrom or along the bitstream that the picture composition data is reusedas packing information. In an embodiment, the packing information isindicated similarly to region-wise packing SEI message or region-wisepacking metadata of OMAF.

It is noted that packing information may be indicated for a set ofreconstructed sub-pictures (e.g. all sub-pictures to be used for outputpicture compositing), but a manipulated reference sub-picture may begenerated from those reconstructed sub-pictures that are available atthe time when the manipulated reference sub-picture is created. Forexample, a manipulated reference sub-picture that is used as a referencefor a third sub-picture of a first time instance may be generated from afirst reconstructed sub-picture and a second reconstructed sub-picture(also of the first time instance) that precede the third sub-picture indecoding order, while the packing information used in generating themanipulated reference sub-picture may comprise the information for thefirst, second, and third sub-pictures.

The blending as part of generating the manipulated reference sub-picturemay be performed in either so that each value sample for a sampleposition in calculated as the average of all samples of the referencesub-pictures positioned onto this sample position, or so that eachsample may be calculated using a weighted average according to thelocation of the sample with respect to the location of available andunavailable samples.

Adaptive Resolution Change

An adaptive resolution change (ARC) refers to dynamically changing theresolution within the video bitstream or video session, for example invideo-conferencing use-cases. Adaptive resolution change may be usede.g. for better network adaptation and error resilience againsttransmission errors or losses. For better adaptation to changing networkrequirements for different content, it may be desired to be able tochange both the temporal/spatial resolution in addition to quality. ARCmay also enable a fast start of a session or after seeking to a new timeposition, wherein the start-up time of a session may be able to bereducing by first sending a low resolution frame and then increasing theresolution. ARC may further be used in composing a conference. Forexample, when a person starts speaking, his/her corresponding resolutionmay be increased.

ARC may be conventionally carried out by an encoding a random-accesspicture (e.g. an HEVC IRAP picture) at the position where the resolutionchange takes place. However, since intra coding applied in random-accesspictures make them more inefficient than inter-coded pictures inrate-distortion performance. Consequently, one possibility is to encodea random-access picture at a relatively low quality to keep the bitcount close to that of inter-coded pictures so that the delay is notsignificantly increased. However, a low-quality picture may besubjectively noticeable and also negatively affects the rate-distortionperformance of pictures predicted from it. Another possibility is toencode a random-access picture at a relatively high quality, but thenthe relatively high bit count may cause higher delay. In low-delayconversational applications, it might not be possible to compensate thehigh delay with initial buffering, which might cause noticeable picturerate fluctuation or motion discontinuity.

The reference sub-picture manipulation process can be used for adaptiveresolution changes.

Inter prediction may be used for reference sub-picture manipulationprocess. Any preceding reference sub-picture of the same sub-picturesequence, in decoding order, may be used as a reference for prediction.Moreover, the manipulated reference sub-pictures may be used asreference for prediction.

In the example the last reconstructed sub-picture of a certainresolution is resampled to generate a manipulated reference sub-picturefor a new resolution. Such an arrangement may suit low-delayapplications, where the decoding and output order of (sub-)pictures arethe same. It needs to be understood that this is not the only possiblearrangement, but any reconstructed sub-picture(s) may be resampled togenerate manipulated reference sub-picture(s) to be used as a referencefor prediction of sub-pictures of a new resolution. Moreover, there maybe more than one manipulated reference sub-picture that is used as areference for prediction for sub-pictures of a new resolution.

Sub-picture sequences may be formed so that the sub-pictures of the sameresolution are in the same sub-picture sequence. Consequently, there aretwo sub-picture sequences in this example. Another option for formingsub-picture sequences is such that the sub-pictures of the sameresolution starting from a resolution switch point are in the samesub-picture sequence. Consequently, there are three sub-picturesequences in this example.

The example above illustrates a possible operation for live encodingadapted e.g. to network throughput and/or decoding capability.Alternatively or additionally, the example above may also illustrate thedecoding operation, where the decoded sub-pictures are a subset ofsub-pictures that are available for decoding, e.g. in a container fileor as a part of received streams.

An adaptive resolution change may be facilitated in streaming (formultiple players) e.g. as described in the next paragraphs.

Selected sub-picture sequences may be encoded for relatively infrequentrandom-access interval. In this example, a low-resolution sub-picturesequence and a high-resolution sub-picture sequence are generated forrandom-access period of every third (sub)segment. These sub-picturesequences may be received e.g. at a stable reception condition, when thereceiver buffer occupancy is sufficiently high and network throughput issufficient and stable for the bitrate of the sub-picture sequence.

Selected sub-picture sequences are encoded for switching betweenresolutions using manipulated reference sub-pictures created throughresampling. In this example, one sub-picture sequence is encoded forresolution change from low to high resolution at any (sub)segmentboundary. The sub-pictures of each (sub)segment in this sub-picturesequence are encoded in a manner that they only depend on each other oron the low-resolution sub-picture sequence.

The sub-picture sequences are made available separately for streaming.For example, they may be announced as separate Representations in DASHMPD.

The client chooses on (sub)segment basis which sub-picture sequence isreceived. The client first receives one (sub)segment of thelow-resolution sub-picture sequence (of the infrequent random-accessinterval). The client then decides to switch up to a higher resolutionand receives two (sub)segments of the sub-picture sequence that usesmanipulated reference sub-pictures generated from the low-resolutionsub-pictures as a reference for prediction. However, since the lattermanipulated reference sub-picture requires the second low-resolution(sub)segment to be decoded, the second (sub)segment of thelow-resolution sub-picture sequence is also received. The client thenswitches to the high-resolution sub-picture sequence of the infrequentrandom-access interval.

In an embodiment, the manipulated reference sub-pictures are generatedfrom specific temporal sub-layers only (e.g. the lowest temporalsub-layer, e.g. TemporalId equal to 0 in HEVC). Those specific temporalsub-layers may be made available for streaming separately from the othertemporal sub-layers of the same sub-picture sequence. For example, thosespecific temporal sub-layers may be announced as a first Representation,and the other sub-layers of the same sub-picture sequence may be madeavailable as a second Representation. Continuing the example clientoperation illustrated above, only the specific sub-layers need to bereceived from the second (sub)segment of the low-resolution sub-picturesequence. The specific sub-layers may be made available as a separateRepresentation or Sub-Representation, hence enabling requesting andreceiving them separately from other sub-layers.

Stream Switching at Open GOP Random-Access Pictures

To support the client switching between different qualities andresolutions during the streaming session of DASH representations, randomaccess point pictures may be encoded at the segment boundaries.Conventionally, random-access pictures starting a so-called closed groupof pictures (GOP) prediction structure have been used at segmentboundaries of DASH representations. It has been found that open-GOPrandom-access pictures improve rate-distortion performance compared toclosed-GOP random-access pictures. Moreover, open-GOP random-accesspictures have been found to reduce observable picture qualityfluctuation when compared to closed-GOP random-access pictures. When thedecoding starts from an open-GOP random-access picture (e.g. a CRApicture of HEVC), some pictures following the random-access picture indecoding order but preceding the random-access picture in output ordermay not be decodable. These pictures may be referred to random accessskipped leading (RASL) pictures. Consequently, if open GOPs were used atsegment boundaries in DASH, representation switching would result intothe inability to decode the RASL pictures and hence a picture rateglitch in the playback.

Seamless representation switching may be enabled when representationsuse open GOP structures and share the same resolution and othercharacteristics, i.e. when a decoded picture of the sourcerepresentation can be used as such as a reference picture for predictingpictures of a target representation. However, representations may notshare the same characteristics, e.g., they may be of different spatialresolution, wherein seamless representation switching may need somefurther considerations.

According to an embodiment, an encoder indicates in or along thebitstream that reference sub-picture manipulation is applied for thosereference sub-pictures of leading sub-pictures or alike that precede, indecoding order, the open-GOP random-access sub-picture associated withthe leading sub-pictures. According to an embodiment, a decoder decodesfrom or along the bitstream or infers that reference sub-picturemanipulation is applied for those reference sub-pictures of leadingsub-pictures or alike that precede, in decoding order, the open-GOPrandom-access sub-picture associated with the leading sub-pictures. Adecoder may infer reference sub-picture manipulation e.g. when anopen-GOP random-access sub-picture is of different resolution thanearlier sub-pictures of the same sub-picture sequence in decoding orderand when the open-GOP random-access sub-picture kept one or morepreceding (in decoding order) reference sub-pictures marked as “used forreference”. The reference sub-picture manipulation may be indicated (byan encoder), decoded (by a decoder), or inferred (by an encoder and/or adecoder) to be resampling to match the resolution of the referencesub-pictures to that of the leading sub-pictures using the referencesub-pictures as reference for prediction.

Adaptive Resolution Changing for Responding to Viewport Changes inRegion-Wise Mixed-Resolution (RWMR) 360° Video Streaming

When viewing orientation changes in HEVC-based viewport-dependent 360°streaming, a new selection of sub-picture Representations can takeeffect at the next IRAP-aligned (Sub)segment boundary. Sub-pictureRepresentations are merged to coded pictures for decoding, and hence theVCL NAL unit types are aligned in all selected sub-pictureRepresentations.

To provide a trade-off between the response time to react to viewingorientation changes and the rate-distortion performance when the viewingorientation is stable, multiple versions of the content can be coded atdifferent random-access picture intervals (or SAP intervals).

Since the viewing orientation may often move gradually, the resolutionchanges in only a subset of the sub-picture locations in RWMRviewport-dependent streaming. However, as discussed above, (Sub)Segmentsstarting with an random-access picture need to be received for allsub-picture locations. Updating all sub-picture locations with(Sub)segments starting with a random-access picture is inefficient interms of streaming rate-distortion performance.

In addition, the ability to use open GOP prediction structures withsub-picture Representations of RWMR 360° streaming is desirable toimprove rate-distortion performance and to avoid visible picture qualitypumping caused by closed GOP prediction structures.

Adaptive resolution change may also be used when there are multiplesub-pictures per access unit. For example, cubemap projection may beused, and each cube face may be coded as one or more sub-pictures. Thesub-pictures that cover the viewport (potentially with a margin to coveralso viewing orientation changes) may be streamed and decoded at ahigher resolution than the other sub-pictures. When a viewingorientation changes in a manner that new sub-pictures would need to bestreamed at a higher resolution while they were earlier streamed at alower resolution, or vice versa, switching from one resolution toanother may be performed as described above.

Adaptive resolution change and/or stream switching at open GOPrandom-access pictures according to embodiments described above may alsobe used when there are multiple sub-pictures per access unit.

According to an embodiment, multiple versions of sub-picture sequencesfor each sub-picture location have been encoded. For example, a separateversion is coded for each combination among two resolutions and tworandom access intervals (here referred to as “short” and “long”) foreach sub-picture location. An open GOP prediction structure has beenused in at least of a sub-picture sequence. Sub-picture sequences havebeen encapsulated into sub-picture tracks and made available as asub-picture Representations in DASH. At least some of the (Sub)segmentsformed from the coded sub-picture sequences start with an open GOPprediction structure. A client selects for a first range of(Sub)segments a first set of sub-picture locations to be received at afirst resolution and a second set of sub-picture locations to bereceived at a second resolution. A viewing orientation change is handledby the client by selecting for a second range of (Sub)segments a thirdset of sub-picture locations to be received at a first resolution and afourth set of sub-picture locations to be received at a secondresolution. The first and third sets are not identical, and theintersection of the first and third sets is non-empty. Likewise, thesecond and fourth sets are not identical, and the intersection of thesecond and fourth sets is non-empty. If the second range of(Sub)segments does not start with a random-access position in thelong-random-access versions, the client requests (Sub)segments of theshort-random-access sub-picture Representations for sub-picturelocations for which the resolution needs to change (i.e. that are withinthe third set but outside the intersection of the first and third sets,or within the fourth set but outside of the intersection of the secondand fourth sets). The reference sub-picture(s) for RASL sub-picture(s)of (Sub)segments of a changed resolution and starting with an open-GOPrandom-access picture are processed by reference sub-picturemanipulation as described in other embodiments. For example, thereference sub-picture(s) may be resampled to the resolution of the RASLsub-picture(s).

For example, cubemap projection may be used, and each cube face may becoded as one or more sub-pictures. The sub-pictures that cover theviewport (potentially with a margin to cover also viewing orientationchanges) may be streamed and decoded at a higher resolution than theother sub-pictures. When a viewing orientation changes in a manner thatnew sub-pictures would need to be streamed at a higher resolution whilethey were earlier streamed at a lower resolution, or vice versa,switching from one resolution to another may be performed as describedabove.

Reference Sub-Picture Manipulation In-Place

In some embodiments, reference sub-picture manipulation happensin-place. In other words, the modified sub-sequence modifies, overwritesor replaces the reference sub-picture. No other codec or bitstreamchanges beyond indicating reference sub-picture manipulation might beneeded. An encoder and/or a decoder may conclude in-place manipulationtaking place through, but not limited to, one or more of the followingmeans:

-   -   In-place manipulation may be pre-defined, e.g. in a coding        standard, to apply always when a manipulated reference        sub-picture is generated.    -   In-place manipulation may be specified, e.g. in a coding        standard, to apply for a pre-defined subset of manipulation        processes.    -   An encoder indicates in or along the bitstream, e.g. in a        sequence parameter set, and/or a decoder decodes from or along        the bitstream that in-place manipulation takes place.

If the dimensions (i.e. width and/or height) and/or other propertiesaffecting memory allocation (e.g. bit depth) of the manipulatedreference sub-picture differ from those of the sub-picture(s) used asinput to the manipulation process, in-place manipulation may beunderstood to comprise the following:

-   -   Creating the manipulated reference sub-picture in a picture        buffer separate from the sub-picture(s) used as source(s) for        the manipulation process.    -   Marking the sub-picture(s) used as source(s) for the        manipulation process as “unused for reference” and possibly        removing them from the decoded picture buffer.

Implicit Resampling

In an embodiment the identification of the reference sub-picturemanipulation process identifies resampling. The identification may, forexample, be a sequence-level indication that reference sub-pictures mayneed to be resampled. In another example, the identification is aprofile indicator or alike, whereby the feature of resampling ofreference sub-pictures is included. The set of decoded sub-pictures tobe manipulated may be inferred as follows: if a reference sub-picturehas a different resolution than the current sub-picture, it is resampledto the resolution of the current sub-picture. In an embodiment, theresampling takes place only if the reference sub-picture is among activepictures in any reference picture list.

In an embodiment there is exactly one coded sub-picture per any timeinstance or access unit. Consequently, conventional (de)coding operationand bitstream syntax can be used except the above-described implicitresampling. Such decoding operation suits e.g. adaptive resolutionchange as described above.

In an embodiment, resampling may be accompanied or replaced by any otheroperations for generating manipulated reference sub-picture, asdescribed above. The identification of the reference sub-picturemanipulation process identifies which operations are to be carried outwhen the reference sub-picture has a different resolution or format(e.g. chroma format or bit depth) than the current sub-picture.

Explicit Management of Manipulated Reference Sub-Pictures

In an embodiment, an encoder encodes in the bitstream and/or a decoderdecodes from the bitstream a control operation to generate a manipulatedreference sub-picture. In an embodiment, the control operation isincluded in the coded video data of the sub-picture that is used as asource for generating the manipulated reference sub-picture. In anotherembodiment, the control operation is included in the coded video data ofthe sub-picture that is using the manipulated reference sub-picture as areference for prediction. In yet another embodiment, the controloperation is included in the coded video data of any sub-picture at orsubsequent to (in decoding order) the sub-picture used as a source forgenerating the manipulated reference sub-picture.

In an embodiment, the manipulated reference sub-picture is paired withthe corresponding “source” reference sub-picture in its marking as “usedfor reference” or “unused for reference” (e.g. in a reference pictureset). I.e., when a “source” reference sub-picture is marked as “unusedfor reference”, the corresponding manipulated reference sub-picture isalso marked as “unused for reference”.

In an embodiment, an encoder encodes in the bitstream and/or a decoderdecodes from the bitstream a control operation to mark a manipulatedreference sub-picture as “used for reference” or “unused for reference”.The control operation may, for example, be a specific reference pictureset for manipulated reference sub-pictures only.

In an embodiment, a reference picture list is initialized to containmanipulated reference sub-pictures that are marked as “used forreference”. In an embodiment, a reference picture list is initialized tocontain manipulated reference sub-pictures that are indicated to beactive references for the current sub-picture.

External Reference Sub-Picture

In an embodiment, the decoding process provides an interface forinputting an “external reference sub-picture”. The reference sub-picturemanipulation process may provide the manipulated reference sub-pictureto the decoding process through the interface.

Within the decoding process, the external reference sub-picture may havepre-defined properties and/or may be inferred and/or properties may beprovided through the interface. These properties may include but are notlimited to one or more of the following:

-   -   Picture order count (POC) or certain bits of POC, e.g. POC least        significant bits (LSBs) and/or POC most significant bits (MSBs).    -   Marking as “used for short-term reference” or “used for        long-term reference”.

For example, it may be pre-defined that an external referencesub-picture is treated as a long-term reference picture and/or haspicture order count equal to 0.

In an embodiment, an encoder encodes into or along the bitstream and/ora decoder decodes from or along the bitstream a control signal if anexternal reference sub-picture is to be obtained for decoding. Thecontrol signal may be included for example in a sequence parameter set,a picture parameter set, a header parameter set, a picture header, asub-picture delimiter or header, and/or an image segment header (e.g. atile group header). When included in a parameter set, the control signalmay cause the decoding to obtain an external reference sub-picture whenthe parameter set is activated. The control signal may be specific to asub-picture sequence (and may be accompanied by a sub-picture sequenceidentifier) or may apply to all sub-picture sequences that are decoded.When included in a header, the control signal may cause the decoding theobtain an external reference sub-picture e.g. when the header is decodedor at the start of decoding the spatiotemporal unit wherein the headeris applied. For example, if the control signal is included in an imagesegment header (e.g. a tile group header), fetching of the externalreference sub-picture may be carried out only for the first imagesegment header of a sub-picture.

In an embodiment, the external reference sub-picture may only be givenfor the first sub-picture of a coded sub-picture sequence that isindependent of other coded sub-picture sequences. For example, in theexample embodiments for adaptive resolution change, each manipulatedreference sub-pictures may start a coded sub-picture sequence. If onlyone sub-picture per coded picture, access unit or time instance is inuse, a manipulated reference sub-picture may start a coded videosequence.

In an embodiment, the external reference sub-picture is inferred to haveproperties that are the same as in the sub-pictures used as source forgenerating the external reference sub-picture.

In some embodiments, the marking of external reference sub-pictures (asused or unused for reference) is controlled synchronously with thesub-picture(s) used as input for the reference sub-picture manipulation.

In an embodiment, external reference sub-pictures are included in theinitial reference picture lists like other reference sub-pictures.

External reference sub-pictures may be accompanied by an identifier(e.g. ExtRefId) that is passed through the interface or inferred. Memorymanagement of the external reference sub-pictures (e.g. which ExtRefIdindices are kept in the decoded picture buffer) may be encoded in ordecoded from the bitstream or may be controlled through the interface.

Start of Sequence and/or End of Sequence Indication

According to an embodiment, an encoder encodes into a bitstream and/or adecoder decodes from a bitstream an end of sequence (EOS) syntaxstructure and/or a start of sequence (SOS) syntax structure comprisingbut not limited to one or more of the following:

-   -   Identifier of sub-picture sequence to which the EOS and/or SOS        syntax structure concerns.    -   Identifiers of parameter set(s) that are activated by the SOS        syntax structure.    -   Control signal specifying if decoding of the EOS and/or SOS        syntax structure is to cause a reference sub-picture        manipulation operation (e.g. by implicit resampling) and/or        obtaining an external reference sub-picture. For example, a SOS        syntax structure, when present, may imply an external

In an embodiment, an end of sequence (EOS) syntax structure and/or astart of sequence (SOS) syntax structure is included in a NAL unit whoseNAL unit type indicates the end of sequence and/or the start ofsequence, respectively.

Start of Bitstream, Sequence, and Sub-Picture Sequence Indications

According to an embodiment, an encoder encodes into a bitstream and/or adecoder decodes from a bitstream a start-of-bitstream indication, astart-of-coded-video-sequence indication, and/or astart-of-sub-picture-sequence indication. The indication(s) may beincluded in and/or decoded from e.g. a parameter set syntax structure, apicture header, and/or a sub-picture delimiter. When present in aparameter set, the indication(s) may apply to the picture or sub-picturethat activates the parameter set. When present in a picture header, asub-picture delimiter, or similar syntax structure, the indication(s)may apply in the bitstream order, i.e. indicate that the syntaxstructure or the access unit or coded picture containing the syntaxstructure starts a bitstream, a coded video sequence, or a sub-picturesequence.

Property Indications

In an embodiment, bitstream or CVS properties are indicated in twolevels, namely per sub-picture sequence excluding the generation of themanipulated reference sub-pictures and per sub-picture sequenceincluding the generation of the manipulated reference sub-pictures. Theproperties may comprise but are not limited to a coding profile, alevel, HRD parameters (e.g. CPB and/or DPB size), constraints that havebeen applied in encoding Properties per sub-picture sequence excludingthe generation of the manipulated reference sub-pictures may beindicated in a syntax structure that applies to the core decodingprocess, such as a sequence parameter set. Properties per sub-picturesequence including the generation of the manipulated referencesub-pictures may be indicated in a syntax structure that applies to thegeneration of the manipulated reference sub-pictures instead of or inaddition to the core decoding process.

Reference sub-picture manipulation may happen outside the core decodingspecification and may be specified e.g. in an application-specificstandard or annex.

A second shell of video codec profile indications may be generated,e.g.: H.266 first shell profile=Main 10, second shellprofile=sub-picture packing, or 360-degree geometry padding, or PointCloud, or implicit adaptive resolution change.

In an embodiment, the encoder indicates, and/or the decoder decodes abitstream property data structure including a first-shell profileindicator and a second-shell profile indicator, wherein the first-shellprofile indicator indicates properties excluding reference sub-picturemanipulation and the second-shell profile indicator indicates propertiesincluding reference sub-picture manipulation.

In an embodiment, bitstream or CVS properties are indicated collectivelyto all sub-picture sequences (i.e. all coded video data). The propertiesmay comprise but are not limited to a coding profile, a level, HRDparameters (e.g. CPB and/or DPB size), constraints that have beenapplied in encoding. As with sub-picture sequence-specific propertyindications, separate set of properties may be indicated and/or decodedfor sub-picture sequences excluding the generation of the manipulatedreference sub-pictures; and for sub-picture sequences including thegeneration of the manipulated reference sub-pictures.

Generation of the Set of Manipulated Reference Sub-Picture by UnfoldingProjection Surfaces

In an embodiment, a manipulated reference sub-picture is generated byunfolding entire or partial projection surfaces onto a 2D plane. In someembodiments, the unfolding is performed through knowledge on thegeometrical relations of the projection surfaces and knowledge on howthe projection surfaces are mapped onto sub-pictures. In otherembodiments, sub-picture packing is used for realizing the unfoldingoperation.

An example embodiment is described in relation to cubemap projection,but it needs to be understood that embodiments can be realized similarlyfor other projection formats. In the example embodiment, cube faces thatare adjacent to the “main” cube face (subject to being predicted) areunfolded onto a 2D plane next to the “main” cube face. Let us assumethat the “main” cube face is encoded or decoded as a sub-picture withinthe current access unit. The picture composition data may be authored byan encoder and/or decoded by a decoder to generate an output from thereconstructed sub-pictures corresponding to cube faces. It is remarkedthat the viewpoint for observing the cube may be in the middle of thecube and hence a cubemap may represent the inner surface of the cube.

The reconstructed sub-pictures of an access unit used as a reference forprediction are used in generating a manipulated reference sub-picturefor the subject-to-being-predicted cube face of the current access unitby unfolding the cube faces of the cube and described as follows: Theunfolded cube faces are adjacent to the subject-to-being-predicted cubeface, i.e. share a common edge with the subject-to-being-predicted cubeface. Subsequent to unfolding the picture area of the manipulatedreference sub-picture may be cropped. In an embodiment, an encoderindicates information indicative of the cropping area in or along thebitstream and a decoder decodes information indicative of the croppingarea from or along the bitstream. In another embodiment, an encoderand/or a decoder infers the cropping area, e.g. to be proportional tothe maximum size of a prediction unit for inter prediction, which may beadditionally appended proportionally to the maximum number of samplesneeded for interpolating samples at non-integer sample locations.

Subsequent or prior to cropping, the corners of the unfolded area may behandled e.g. in one of the following ways: the corners may be leftunoccupied or the corners may be padded e.g. with the adjacent cornersample of the subject-to-being-predicted cube face.

The corners may be interpolated from the unfolded cube faces. Forexample, interpolation may be performed but is not limited to either ofthe following:

-   -   A sample row and a sample column from the adjacent unfolded cube        faces may be rescaled to cover the corner area and blended (e.g.        averaged).    -   Interpolation along each line segment connecting the border        sample of the sample row and the border sample of the sample        column from the adjacent unfolded cube faces that have the same        distance to the corner sample. The interpolation can be done as        a weighted average proportional to the inverse of the distance        to the border sample.    -   Padding from the closest of the border samples of the sample row        or the sample column of the adjacent unfolded cube faces.

Spatial relationship information may be used to indicate that thesubject-to-being-predicted cube face in the current access unitcorresponds to the central area of the manipulated referencesub-picture. An advantage of this arrangement is that motion vectors areallowed to refer to sample outside the central area of the manipulatedreference sub-picture and that the picture content is approximatelycorrect in those areas.

Generation of the Set of Manipulated Reference Sub-Picture by UnfoldingProjection Surfaces and Sample-Line-Wise Resampling

In an embodiment, a manipulated reference sub-picture is generated intwo steps. First, entire or partial projection surfaces are unfoldedonto a 2D plane as described in the previous embodiment. Second, sincethe unfolding may cause unoccupied sample locations in the manipulatedreference sub-picture, the sample lines or columns of the unfoldedprojection surface, such as an entire or partial unfolded cube face, maybe extended by resampling to cover up to 45 degree of the corner.

Rotation Compensation for 360° Video

In 360° video coding, the projection structure, such as the sphere, maybe rotated prior to deriving the 2D picture. One reason for suchrotation may be to adjust the 2D version of the content to suit codingtools better for improved rate-distortion performance. For example, onlycertain intra prediction directions may be available, and hence rotationcould be applied to match the 2D version of the content with intraprediction directions. This may be done for example by computinglocalized gradients and statistically improve the match between thegradients and intra prediction directions by rotating the projectionstructure. However, there would be temporal inconsistency between the 2Dpictures of the content generated with different rotation and henceconventional inter prediction between such 2D pictures is not likely tosucceed well, causing a penalty in rate-distortion performance.

In an embodiment, a reference sub-picture is associated with a firstrotation and a current sub-picture is associated with a second rotation.A manipulated reference sub-picture is generated wherein the essentiallythe second rotation is used. The reference sub-picture manipulation mayfor example comprise the following steps: First, the referencesub-picture may be projected onto a projection structure, such as asphere, using the first rotation. The image data on the projectionstructure may be projected onto a manipulated reference sub-pictureusing the second rotation. For example, the second rotation may beapplied to rotate the sphere image and the sphere image may then beprojected onto a projection structure (e.g. a cube or a cylinder) whichis then unfolded to form a 2D sub-picture.

Compensation for Non-Aligned Projection Surfaces of Point Cloud Video

As discussed above, point cloud sequences may be coded as video whenpoint clouds are projected onto one or more projection surfaces. Anencoder could adapt properties of the projection surfaces to the contentin a time-varying manner Properties of the projection surfaces maycomprise but are not limited to one or more of the following: 3Dlocation, 3D orientation, shape, size, projection format (e.g.ortographic projection or a geometric projection with a projectioncenter), and sampling resolution. Thus, conventional inter predictionbetween patches might not succeed well if any property of the projectionsurface differs between a reference picture and a current picture beingencoded or decoded. Thus, adapting properties of projection surfacescould cause a penalty in rate-distortion performance for coding a pointcloud sequence even if it improved rate-distortion performance for asingle time instance.

In an embodiment, reference sub-picture manipulation comprisesinter-projection prediction. One or more patches of one or moresub-pictures from one projection (texture and geometry images) may beused as a source for generating a manipulated reference sub-picturecomprising one or more reference patches. The manipulated referencesub-picture may essentially represent the properties of the projectionsurface(s) of a current sub-picture being encoded or decoded. In thereference sub-picture manipulation process, a point cloud may begenerated from the reconstructed texture and geometry sub-pictures,using the properties of the projection surface(s) applying to thereconstructed texture and geometry sub-pictures. The point cloud may beprojected onto a second set of projection surface(s) that may have thesame or similar properties as the projection surfaces applying to thecurrent texture sub-picture and/or the current geometry sub-picturebeing encoded or decoded. and the respective texture and geometryprediction pictures are formed from this projection.

Generalizations

In an embodiment, reference sub-picture manipulation is regarded as apart of decoded picture buffering rather than a process separate fromthe decoded picture buffering.

In an embodiment, reference sub-picture manipulation access sub-picturesfrom a first bitstream and a second bitstream to generate manipulatedreference sub-picture(s). For example, the first bitstream may representtexture video of a first viewpoint, and the second bitstream mayrepresent depth or geometry video for the first viewpoint, and themanipulated reference sub-picture may represent texture video for asecond viewpoint.

Embodiments have been described above with reference to the termsub-picture. It needs to be understood that in some cases there is onlyone sub-picture per time instance or access unit, and thus embodimentscould likewise be described with reference to the term picture insteadof the term sub-picture.

The above described embodiments provide a mechanism and an architectureto use core video (de)coding process and bitstream format in a versatilemanner for many video-based purposes, including video-based point cloudcoding, patch-based volumetric video coding, and 360-degree video codingwith multiple projection surfaces. Compression efficiency may beimproved compared to plain 2D video coding by enabling sophisticatedapplication-tailored prediction.

The above described embodiments are suitable for interfacing asingle-layer 2D video codec with additional functionality.

A method according to an example comprises obtaining coded data of asub-picture, the sub-picture belonging to a picture, and the sub-picturebelonging to a sub-picture sequence. It is then determined whether thesub-picture would be used as a source for a manipulated referencesub-picture. If the determination indicates that the sub-picture wouldbe used as a source for a manipulated reference sub-picture, thatsub-picture is used as a basis for a manipulated reference sub-picture.In other words, the manipulated reference sub-picture is generated fromthe sub-picture to be used as a reference for a subsequent sub-pictureof the sub-picture sequence.

The manipulation may comprise, for example, rotating the sub-picture,mirroring the sub-picture, resampling the sub-picture, positioningwithin the area of the manipulated reference sub-picture, overlayingover or blending with the samples already present within the indicatedarea of the manipulated reference sub-picture, or some other form ofmanipulation. It may also be possible to use more than one of the abovementioned and/or other manipulation principles to generate themanipulated reference sub-picture.

An apparatus according to an embodiment comprises at least one processorand at least one memory including computer program code, the memory andthe computer program code configured to, with the at least oneprocessor, cause the apparatus to perform at least the following:

-   -   obtain coded data of a sub-picture, the sub-picture belonging to        a picture, and the sub-picture belonging to a sub-picture        sequence;    -   determine whether to use the sub-picture as a source for a        manipulated reference sub-picture;    -   generate the manipulated reference sub-picture from the        sub-picture to be used as a reference for a subsequent        sub-picture of the sub-picture sequence, if the determining        reveals that the sub-picture is to be used as the source for the        manipulated reference sub-picture.

FIG. 16 is a flowchart illustrating a method according to an embodiment.A method comprises decoding 1610 coded data of a first sub-picture, thefirst sub-picture belonging to a first picture, and the firstsub-picture belonging to a first sub-picture sequence; decoding 1620coded data of a second sub-picture, the second sub-picture belonging toa first picture, and the second sub-picture belonging to a secondsub-picture sequence, the decoding being independent of the decoding ofthe coded data of the first sub-picture; and decoding 1630 coded data ofa third sub-picture, the third sub-picture belonging to a secondpicture, the third sub-picture belonging to the first sub-picturesequence, the decoding using the first sub-picture as a reference forprediction.

FIG. 17 is a flowchart illustrating a method according to anotherembodiment. A method comprises encoding 1710 data of a firstsub-picture, the first sub-picture belonging to a first picture, and thefirst sub-picture belonging to a first sub-picture sequence; encoding1720 data of a second sub-picture, the second sub-picture belonging to afirst picture, and the second sub-picture belonging to a secondsub-picture sequence, the encoding being independent of the encoding ofthe coded data of the first sub-picture; and encoding 1730 data of athird sub-picture, the third sub-picture belonging to a second picture,the third sub-picture belonging to the first sub-picture sequence, theencoding using the first sub-picture as a reference for prediction.

An apparatus according to an embodiment comprises means for decodingcoded data of a first sub-picture, the first sub-picture belonging to afirst picture, and the first sub-picture belonging to a firstsub-picture sequence; means for decoding coded data of a secondsub-picture, the second sub-picture belonging to a first picture, andthe second sub-picture belonging to a second sub-picture sequence, thedecoding being independent of the decoding of the coded data of thefirst sub-picture; and means for decoding coded data of a thirdsub-picture, the third sub-picture belonging to a second picture, thethird sub-picture belonging to the first sub-picture sequence, thedecoding using the first sub-picture as a reference for prediction. Themeans comprises at least one processor, and a memory including acomputer program code, wherein the processor may further compriseprocessor circuitry. The memory and the computer program code areconfigured to, with the at least one processor, cause the apparatus toperform the method of FIG. 16 according to various embodiments.

An apparatus according to another embodiment comprises means forencoding data of a first sub-picture, the first sub-picture belonging toa first picture, and the first sub-picture belonging to a firstsub-picture sequence; means for encoding data of a second sub-picture,the second sub-picture belonging to a first picture, and the secondsub-picture belonging to a second sub-picture sequence, the encodingbeing independent of the encoding of the coded data of the firstsub-picture; and means for encoding data of a third sub-picture, thethird sub-picture belonging to a second picture, the third sub-picturebelonging to the first sub-picture sequence, the encoding using thefirst sub-picture as a reference for prediction. The means comprises atleast one processor, and a memory including a computer program code,wherein the processor may further comprise processor circuitry. Thememory and the computer program code are configured to, with the atleast one processor, cause the apparatus to perform the method of FIG.17 according to various embodiments.

An example of an apparatus, e.g. an apparatus for encoding and/ordecoding, is illustrated in FIG. 18. The generalized structure of theapparatus will be explained in accordance with the functional blocks ofthe system. Several functionalities can be carried out with a singlephysical device, e.g. all calculation procedures can be performed in asingle processor if desired. A data processing system of an apparatusaccording to an example of FIG. 18 comprises a main processing unit 100,a memory 102, a storage device 104, an input device 106, an outputdevice 108, and a graphics subsystem 110, which are all connected toeach other via a data bus 112.

The main processing unit 100 may be a conventional processing unitarranged to process data within the data processing system. The mainprocessing unit 100 may comprise or be implemented as one or moreprocessors or processor circuitry. The memory 102, the storage device104, the input device 106, and the output device 108 may includeconventional components as recognized by those skilled in the art. Thememory 102 and storage device 104 store data in the data processingsystem 100. Computer program code resides in the memory 102 forimplementing, for example, the methods according to embodiments. Theinput device 106 inputs data into the system while the output device 108receives data from the data processing system and forwards the data, forexample to a display. The data bus 112 is a conventional data bus andwhile shown as a single line it may be any combination of the following:a processor bus, a PCI bus, a graphical bus, an ISA bus. Accordingly, askilled person readily recognizes that the apparatus may be any dataprocessing device, such as a computer device, a personal computer, aserver computer, a mobile phone, a smart phone or an Internet accessdevice, for example Internet tablet computer.

The various embodiments can be implemented with the help of computerprogram code that resides in a memory and causes the relevantapparatuses to carry out the method. For example, a device may comprisecircuitry and electronics for handling, receiving and transmitting data,computer program code in a memory, and a processor that, when runningthe computer program code, causes the device to carry out the featuresof an embodiment. Yet further, a network device like a server maycomprise circuitry and electronics for handling, receiving andtransmitting data, computer program code in a memory, and a processorthat, when running the computer program code, causes the network deviceto carry out the features of an embodiment. The computer program codecomprises one or more operational characteristics. Said operationalcharacteristics are being defined through configuration by said computerbased on the type of said processor, wherein a system is connectable tosaid processor by a bus, wherein a programmable operationalcharacteristic of the system comprises obtaining coded data of asub-picture, the sub-picture belonging to a picture, and the sub-picturebelonging to a sub-picture sequence; determining whether to use thesub-picture as a source for a manipulated reference sub-picture; if thedetermining reveals that the sub-picture is to be used as the source forthe manipulated reference sub-picture; the method further comprisesgenerating the manipulated reference sub-picture from the sub-picture tobe used as a reference for a subsequent sub-picture of the sub-picturesequence.

If desired, the different functions discussed herein may be performed ina different order and/or concurrently with other. Furthermore, ifdesired, one or more of the above-described functions and embodimentsmay be optional or may be combined.

Although various aspects of the embodiments are set out in theindependent claims, other aspects comprise other combinations offeatures from the described embodiments and/or the dependent claims withthe features of the independent claims, and not solely the combinationsexplicitly set out in the claims.

1-25. (canceled)
 26. A method comprising: decoding from, a bitstreaminformation on a mapping of Video Coding Layer Network Abstraction Layer(VCL NAL) units or image segments, in decoding order, to sub-pictures orsub-picture sequences; decoding coded data of a first sub-picturebelonging to a first picture, and wherein the first sub-picturebelonging to a first sub-picture sequence; decoding coded data of asecond sub-picture belonging to a first picture, and wherein the secondsub-picture belonging to a second sub-picture sequence, the decodingbeing independent of the decoding of the coded data of the firstsub-picture; and decoding coded data of a third sub-picture belonging toa second picture, and wherein the third sub-picture belonging to thefirst sub-picture sequence, and wherein the decoding using the firstsub-picture as a reference for prediction.
 27. The method according toclaim 26 further comprising: decoding picture composition dataseparately from decoding the coded data of the first and the secondsub-pictures; and composing a first decoded picture on the basis of thepicture composition data, wherein the composing comprises positioningthe decoded first sub-picture and the decoded second sub-picture ontothe first decoded picture.
 28. The method according to claim 26 furthercomprising: decoding or inferring information on properties relating tothe bitstream or a coded video sequence, wherein the properties beingindicated for a sub-picture sequence and for all sub-picture sequencesprovided for decoding, and wherein the properties comprises one or moreof the following: a coding profile; a level; hypothetical referencedecoder parameters; or constraints applied during encoding.
 29. Themethod according to claim 26 further comprising decoding from, thebitstream information indicative of a sub-picture sequence identifierbeing associated with coded video data units.
 30. The method accordingto claim 29, wherein a coded video data unit comprises a slice, andwherein the method further comprises decoding the sub-picture sequenceidentifier from a slice header comprised in the coded video data unit.31. A method comprising: encoding, into a bitstream information on amapping of Video Coding Layer Network Abstraction Layer (VCL NAL)unitsor image segments, in decoding order, to sub-pictures or sub-picturesequences; encoding data of a first sub-picture, wherein the firstsub-picture belonging to a first picture, and wherein the firstsub-picture belonging to a first sub-picture sequence; encoding data ofa second sub-picture, wherein the second sub-picture belonging to afirst picture, and wherein the second sub-picture belonging to a secondsub-picture sequence, the encoding of the coded data of the secondsub-picture being independent of the encoding of the coded data of thefirst sub-picture; and encoding data of a third sub-picture, wherein thethird sub-picture belonging to a second picture, the third sub-picturebelonging to the first sub-picture sequence, and wherein the encodingusing the first sub-picture as a reference for prediction.
 32. Anapparatus comprising at least one processor and at least one memoryincluding computer program code, the memory and the computer programcode configured to, with the at least one processor, cause the apparatusto perform at least the following: to decode from the bitstreaminformation on a mapping of VCL NAL units or image segments, in decodingorder, to sub-pictures or sub-picture sequences. to decode coded data ofa first sub-picture belonging to a first picture, and wherein the firstsub-picture belonging to a first sub-picture sequence; to decode codeddata of a second sub-picture belonging to a first picture, and whereinthe second sub-picture belonging to a second sub-picture sequence, thedecoding being independent of the decoding of the coded data of thefirst sub-picture; and to decode coded data of a third sub-picture,wherein the third sub-picture belonging to a second picture, wherein thethird sub-picture belonging to the first sub-picture sequence, whereinthe decoding using the first sub-picture as a reference for prediction.33. The apparatus according to claim 32, wherein the memory and thecomputer program code further configured to cause the apparatus to:decode picture composition data separately from decoding the coded dataof first and second sub-pictures; and compose a first decoded picture onthe basis of the picture composition data, wherein the composingcomprises positioning the decoded first sub-picture and the decodedsecond sub-picture onto the first decoded picture.
 34. The apparatusaccording to claim 32, wherein the memory and the computer program codefurther configured to cause the apparatus to decode or infer informationon properties relating to the bitstream or a coded video sequence,wherein the properties being indicated for a sub-picture sequence andfor all sub-picture sequences provided for decoding, and wherein theproperties comprises one or more of the following: a coding profile; alevel; hypothetical reference decoder parameters; or constraints appliedduring encoding.
 35. The apparatus according to claim 32, wherein thememory and the computer program code are further configured to cause theapparatus to decode from the bitstream information indicative of asub-picture sequence identifier being associated with coded video dataunits.
 36. The apparatus according to claim 35, wherein a coded videodata unit comprises a slice and wherein the memory and the computerprogram code are further configured to cause the apparatus to decode thesub-picture sequence identifier from a slice header comprised in thecoded video data unit.
 37. The apparatus according to claim 32, whereinthe information on the mapping comprises a mapping as a list ofsub-picture sequence identifiers for VCL NAL units in decoding orderincluded in an access unit associated with the mapping.
 38. An apparatuscomprising at least one processor, memory including computer programcode, the memory and the computer program code configured to, with theat least one processor, cause the apparatus to perform at least thefollowing: encode into the bitstream information on a mapping of VCL NALunits or image segments, in decoding order, to sub-pictures orsub-picture sequences; encode data of a first sub-picture, wherein thefirst sub-picture belonging to a first picture, and wherein the firstsub-picture belonging to a first sub-picture sequence; encode data of asecond sub-picture, wherein the second sub-picture belonging to a firstpicture, and wherein the second sub-picture belonging to a secondsub-picture sequence, and wherein the encoding being independent of theencoding of the coded data of the first sub-picture; and encode data ofa third sub-picture, wherein the third sub-picture belonging to a secondpicture, the third sub-picture belonging to the first sub-picturesequence, and wherein the encoding using the first sub-picture as areference for prediction.
 39. The apparatus according to claim 38,wherein the memory and the computer program code further configured tocause the apparatus to encode picture composition data separately fromencoding the data of the first and the second sub-pictures; and composea first reconstructed picture on the basis of the picture compositiondata, wherein the composing comprises positioning the reconstructedfirst sub-picture and the reconstructed second sub-picture onto thefirst reconstructed picture.
 40. The apparatus according to claim 38,wherein the memory and the computer program code further configured tocause the apparatus to encode to the bitstream information on propertiesrelating to the bitstream or the coded video sequence, the propertiesbeing indicated for a sub-picture sequence and for all sub-picturesequences, the properties comprising one or more of the following: acoding profile; a level; hypothetical reference decoder parameters; orconstraints having been applied in encoding.
 41. The apparatus accordingto claim 38, wherein the memory and the computer program code arefurther configured to cause the apparatus to encode into the bitstreaminformation indicative of one or more tile positions within asub-picture.
 42. The apparatus according to claim 41, wherein the memoryand the computer program code are further configured to cause theapparatus to encode, into a slice header, information indicative of atile position of a first tile, in decoding order, of the slice.
 43. Theapparatus according to claim 38, wherein the memory and the computerprogram code are further configured to cause the apparatus to encodeinto the bitstream information indicative of a sub-picture sequenceidentifier being associated with coded video data units.
 44. Theapparatus according to claim 43, wherein a coded video data unitcomprises a slice and the memory and the computer program code arefurther configured to cause the apparatus to encode the sub-picturesequence identifier into a slice header comprised in the coded videodata unit.
 45. The apparatus according to claim 38, wherein theinformation on the mapping comprises mapping as a list of sub-picturesequence identifiers for VCL NAL units in decoding order included in theaccess unit associated with the mapping.